.cookie-notice{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:900;display:flex;align-items:center;gap:14px;width:calc(100% - 40px);max-width:580px;padding:14px 16px 14px 18px;background:#fff;border:1px solid #edf2f7;border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.12);color:#2D3748;font-size:14px;line-height:1.45;animation:cookieNoticeIn .35s ease}.cookie-notice-closing{animation:cookieNoticeOut .25s ease forwards}.cookie-notice-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#F1F1FF;color:#6B6BD6}.cookie-notice-text{flex:1 1;margin:0}.cookie-notice-link{color:#2D3748;font-weight:600;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.cookie-notice-link:hover{color:#6B6BD6}.cookie-notice-actions{display:flex;flex-shrink:0;gap:8px}.cookie-notice-two{max-width:680px}.cookie-notice-btn{flex-shrink:0;padding:10px 20px;border:none;border-radius:10px;background:#2D3748;color:#fff;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease}.cookie-notice-btn:hover{background:#1A202C}.cookie-notice-btn-secondary{background:#EDF2F7;color:#2D3748}.cookie-notice-btn-secondary:hover{background:#E2E8F0}.cookie-notice-btn:focus-visible,.cookie-notice-link:focus-visible{outline:2px solid #aeaeff;outline-offset:2px}@keyframes cookieNoticeIn{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes cookieNoticeOut{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,16px)}}@media (max-width:600px){.cookie-notice{bottom:calc(12px + env(safe-area-inset-bottom, 0px));width:calc(100% - 24px);flex-wrap:wrap;gap:12px;padding:14px}.cookie-notice-icon{width:38px;height:38px;border-radius:10px}.cookie-notice-icon svg{width:24px;height:24px}.cookie-notice-text{flex:1 1;min-width:0;font-size:13.5px}.cookie-notice-actions{flex:1 1 100%}.cookie-notice-btn{flex:1 1;padding:12px 16px}}@media (prefers-reduced-motion:reduce){.cookie-notice,.cookie-notice-closing{animation:none}}.fav-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10000;display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 12px rgba(0,0,0,.15);animation:toastPopIn .3s ease,toastFadeOut .3s ease 1.7s forwards;pointer-events:none}.fav-toast-add{background:#2D3748}.fav-toast-remove{background:#718096}.fav-toast-icon{display:flex;align-items:center}.fav-toast-text{white-space:nowrap}@keyframes toastPopIn{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes toastFadeOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}.offline-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:9999;padding:20px}.offline-modal{background:#fff;border-radius:20px;padding:40px 32px 32px;max-width:420px;width:100%;text-align:center;position:relative;box-shadow:0 8px 32px rgba(0,0,0,.12)}.offline-close{position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer;color:#999;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.offline-close:hover{color:#333}.offline-icon{margin-bottom:16px}@keyframes wifi-pulse{0%,to{opacity:1}50%{opacity:.2}}@keyframes slash-draw{0%{stroke-dashoffset:120}to{stroke-dashoffset:0}}@keyframes dot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.wifi-arc{animation:wifi-pulse 2s ease-in-out infinite}.wifi-arc-1{animation-delay:0s}.wifi-arc-2{animation-delay:.3s}.wifi-arc-3{animation-delay:.6s}.wifi-slash{stroke-dasharray:120;stroke-dashoffset:120;animation:slash-draw 1s ease-out forwards}.wifi-dot{transform-origin:60px 86px;animation:dot-pulse 2s ease-in-out infinite}.offline-title{font-size:22px;font-weight:700;color:#1A1A1A;margin:0 0 8px}.offline-text{font-size:15px;color:#666;margin:0 0 24px;line-height:1.5}.offline-btn{width:100%;padding:14px;background:#1A1A1A;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.offline-btn:hover{background:#333}