/* ============ MODAL (shared) ============ */ .modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.88); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); z-index: 99999; align-items: center; justify-content: center; padding: 20px; } .modal-overlay.show { display: flex; animation: modalFadeIn .2s ease; } @keyframes modalFadeIn { from { opacity: 0; } to { opacity: 1; } } .modal-box { background: linear-gradient(145deg, #1a1a2e, #16213e); border: 1px solid rgba(229,9,20,.3); border-radius: 24px; padding: 32px 26px 26px; max-width: 420px; width: 100%; text-align: center; animation: modalPop .3s cubic-bezier(.2,.9,.3,1.2); box-shadow: 0 30px 80px rgba(0,0,0,.7); color: #fff; } @keyframes modalPop { from { transform: scale(.9); opacity: 0; } to { transform: scale(1); opacity: 1; } } .modal-box.modal-success { border-color: rgba(46,204,113,.4); } .modal-box.modal-warning { border-color: rgba(243,156,18,.4); } .modal-box.modal-error { border-color: rgba(231,76,60,.4); } .modal-icon { font-size: 54px; color: #e50914; margin-bottom: 18px; display: block; } .modal-box.modal-success .modal-icon { color: #2ecc71; } .modal-box.modal-warning .modal-icon { color: #f39c12; } .modal-box.modal-error .modal-icon { color: #e74c3c; } .modal-box h3 { font-size: 22px; font-weight: 800; margin: 0 0 8px; color: #fff; letter-spacing: -.01em; } .modal-box p { font-size: 15px; color: #8a8a9a; margin: 0 0 24px; line-height: 1.55; } .modal-input { width: 100%; padding: 13px 16px; background: #0d0d14; border: 1px solid #1e1e2a; border-radius: 12px; color: #fff; font-size: 15px; font-family: inherit; margin-bottom: 20px; text-align: left; } .modal-input:focus { outline: none; border-color: #e50914; box-shadow: 0 0 0 4px rgba(229,9,20,.12); } .modal-buttons { display: flex; flex-direction: column; gap: 10px; } .modal-btn { width: 100%; padding: 13px; border-radius: 30px; font-weight: 700; font-size: 14.5px; cursor: pointer; border: 0; font-family: inherit; transition: all .15s; display: inline-flex; align-items: center; justify-content: center; gap: 8px; } .modal-btn:hover:not(:disabled) { transform: translateY(-2px); } .modal-btn:disabled { opacity: .6; cursor: not-allowed; } .modal-btn-primary { background: #e50914; color: #fff; } .modal-btn-primary:hover:not(:disabled) { box-shadow: 0 10px 24px rgba(229,9,20,.4); } .modal-btn-danger { background: #e50914; color: #fff; } .modal-btn-danger:hover:not(:disabled) { box-shadow: 0 10px 24px rgba(229,9,20,.5); } .modal-btn-success { background: #2ecc71; color: #fff; } .modal-btn-cancel { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #c2c2d2; } .modal-btn-cancel:hover:not(:disabled) { background: rgba(255,255,255,.1); color: #fff; } /* ============ TOAST ============ */ .toast-box { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 100000; display: flex; flex-direction: column; gap: 8px; pointer-events: none; max-width: 90vw; align-items: center; } .toast { background: rgba(20,20,35,.95); color: #fff; padding: 12px 24px; border-radius: 30px; border: 1px solid #1e1e2a; font-size: 14px; opacity: 0; transform: translateY(20px); transition: all .3s; box-shadow: 0 10px 40px rgba(0,0,0,.5); backdrop-filter: blur(10px); display: inline-flex; align-items: center; gap: 10px; } .toast.show { opacity: 1; transform: translateY(0); } .toast-success { border-color: #2ecc71; color: #7ee0a6; } .toast-error { border-color: #e74c3c; color: #ff8b7f; } .toast-info { border-color: #3498db; color: #8ab4e8; } .toast-warning { border-color: #f39c12; color: #f3c45e; }