html, body { height: 100%; margin: 0; }

/* subtle dotted background used behind cards, matching the original design */
.dot-grid {
  background-image: radial-gradient(circle, rgba(0,229,255,0.05) 1px, transparent 1px);
  background-size: 18px 18px;
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #2a3340; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #384454; }

@keyframes nd-ping {
  75%, 100% { transform: scale(2); opacity: 0; }
}
.nd-ping { animation: nd-ping 1.8s cubic-bezier(0,0,0.2,1) infinite; }

@keyframes nd-spin { to { transform: rotate(360deg); } }
.nd-spin { animation: nd-spin 1s linear infinite; }

.nd-fade-in { animation: nd-fade-in .2s ease-out; }
@keyframes nd-fade-in { from { opacity: 0; } to { opacity: 1; } }

.nd-slide-down { animation: nd-slide-down .25s ease-out; }
@keyframes nd-slide-down { from { opacity: 0; transform: translate(-50%, -20px); } to { opacity: 1; transform: translate(-50%, 0); } }

textarea, input { font-family: inherit; }

/* Toast container */
#nd-toasts { position: fixed; bottom: 16px; right: 16px; z-index: 200; display: flex; flex-direction: column; gap: 8px; }
