/* ===========================
   UNO — main.css
   =========================== */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --red:    #e53935;
  --blue:   #1e63d8;
  --yellow: #f5c542;
  --green:  #2fa84f;
  --wild:   #9b59b6;
  --bg:     #050505;
  --bg2:    #ffffff;
  --text:   #f8f4ec;
  --muted:  #c9c1b6;
  --border: rgba(248,244,236,0.16);
  --glass:  rgba(255,255,255,0.9);
  --font-title: 'Orbitron', sans-serif;
  --font-body:  'Rajdhani', sans-serif;
  --card-r: 16px;
}

html, body {
  height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  -webkit-tap-highlight-color: transparent;
  overscroll-behavior: none;
}

/* Scrollbar */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* Utility */
.hidden { display: none !important; }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.gap-sm { gap: 0.5rem; }
.gap-md { gap: 1rem; }
.text-center { text-align: center; }
.w-full { width: 100%; }

/* Pixel font for values */
@font-face {
  font-family: 'PixelFont';
  src: local('Courier New');
}

/* Modest page background */
.page-bg {
  background:
    radial-gradient(circle at 12% 18%, rgba(229,57,53,0.28), transparent 24rem),
    radial-gradient(circle at 86% 16%, rgba(30,99,216,0.26), transparent 22rem),
    radial-gradient(circle at 16% 86%, rgba(245,197,66,0.22), transparent 24rem),
    radial-gradient(circle at 88% 84%, rgba(47,168,79,0.24), transparent 22rem),
    var(--bg);
}

/* Glass card */
.glass {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: 20px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* Glow effects */
.glow-red   { box-shadow: 0 0 20px rgba(255,71,87,0.4); }
.glow-blue  { box-shadow: 0 0 20px rgba(55,66,250,0.4); }
.glow-yellow{ box-shadow: 0 0 20px rgba(255,165,2,0.4); }
.glow-green { box-shadow: 0 0 20px rgba(46,213,115,0.4); }

/* Pulse animation */
@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 10px currentColor; }
  50%       { box-shadow: 0 0 30px currentColor, 0 0 60px currentColor; }
}

/* Slide up */
@keyframes slide-up {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

.animate-in { animation: slide-up 0.4s ease forwards; }

/* Toast notifications */
.toast {
  position: fixed;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%) translateY(-80px);
  background: rgba(30,30,60,0.95);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.75rem 1.5rem;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--text);
  z-index: 9999;
  transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
  white-space: nowrap;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}

.toast.show { transform: translateX(-50%) translateY(0); }

/* Color badge */
.color-dot {
  display: inline-block;
  width: 12px; height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Spinner */
.spinner {
  width: 36px; height: 36px;
  border: 3px solid var(--border);
  border-top-color: var(--blue);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* Card colors map */
.color-red    { --card-color: var(--red); }
.color-blue   { --card-color: var(--blue); }
.color-yellow { --card-color: var(--yellow); }
.color-green  { --card-color: var(--green); }
.color-wild   { --card-color: var(--wild); }
