/* ══════════════════════════════════════════════════════════
   THEME STYLES
══════════════════════════════════════════════════════════ */

/* 1. Theme Space (Galaxie Mystique) */
body.theme-space {
  background: radial-gradient(circle at center, #1b2735 0%, #090a0f 100%) !important;
}
body.theme-space::before {
  background: 
    radial-gradient(1px 1px at 20px 30px, #ffffff, transparent),
    radial-gradient(1.5px 1.5px at 60px 80px, rgba(255,255,255,0.8), transparent),
    radial-gradient(2px 2px at 150px 150px, #ffffff, transparent),
    radial-gradient(1.5px 1.5px at 230px 40px, rgba(255,255,255,0.6), transparent),
    radial-gradient(1px 1px at 300px 150px, #ffffff, transparent);
  background-size: 350px 350px !important;
  opacity: 1 !important;
  animation: bgShiftSpace 20s linear infinite !important;
}
@keyframes bgShiftSpace {
  from { transform: translateY(0); }
  to { transform: translateY(-350px); }
}
.theme-space .card {
  border: 2px solid rgba(255, 255, 255, 0.4) !important;
  box-shadow: 0 0 15px rgba(255, 255, 255, 0.2), inset 0 0 20px rgba(0, 0, 0, 0.6) !important;
}
.theme-space .card::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at 10% 20%, rgba(255,255,255,0.2) 0%, transparent 40%);
}
.theme-space .card.playable {
  box-shadow: 0 0 0 2px #fff, 0 0 30px rgba(9, 132, 227, 0.8), 0 10px 30px rgba(0,0,0,0.8) !important;
}
.theme-space .card-oval {
  background: rgba(0, 0, 0, 0.5) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.1), 0 0 15px rgba(9, 132, 227, 0.4) !important;
}
.theme-space .card-back {
  background: linear-gradient(145deg, #0b1320, #000) !important;
  border-color: #0984e3 !important;
}
.theme-space .card-back .cb-text {
  text-shadow: 0 0 10px #74b9ff, 0 0 20px #0984e3 !important;
  color: #fff !important;
}

/* 2. Theme Graffiti (Street) */
body.theme-graffiti {
  background: #333 !important;
}
body.theme-graffiti::before {
  content: '';
  background-color: #bdc3c7;
  background-image: 
    linear-gradient(335deg, rgba(255,255,255,0.3) 10%, transparent 20%),
    linear-gradient(rgba(0, 0, 0, 0.4) 2px, transparent 2px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.4) 2px, transparent 2px) !important;
  background-size: 100% 100%, 60px 30px, 60px 30px !important;
  opacity: 0.8 !important;
  animation: none !important;
}
.theme-graffiti .game-table::after {
  content: ''; position: absolute; inset: -50px; pointer-events: none;
  background: radial-gradient(circle at 10% 20%, rgba(231,76,60,0.3) 5%, transparent 10%),
              radial-gradient(circle at 80% 30%, rgba(241,196,15,0.3) 8%, transparent 15%),
              radial-gradient(circle at 40% 70%, rgba(9,132,227,0.3) 6%, transparent 12%);
  z-index: 0;
}
.theme-graffiti .card {
  border: 4px solid #111 !important;
  border-radius: 4px !important;
  font-family: 'Boogaloo', cursive !important;
  box-shadow: 6px 6px 0px rgba(0,0,0,0.7) !important;
}
.theme-graffiti .card.playable:hover {
  transform: translateY(-20px) rotate(-3deg) scale(1.1) !important;
  box-shadow: 10px 10px 0px rgba(0,0,0,0.8) !important;
}
.theme-graffiti .card::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="80" r="1.5" fill="%23111" opacity="0.4"/><circle cx="30" cy="70" r="1" fill="%23111" opacity="0.3"/><circle cx="70" cy="10" r="2" fill="%23111" opacity="0.3"/></svg>') !important;
  background-size: cover;
}
.theme-graffiti .card-oval {
  border: 3px solid #111 !important;
  background: transparent !important;
  border-radius: 10px !important;
  transform: rotate(-10deg) !important;
}
.theme-graffiti .card-num-big {
  color: #fff !important;
  text-shadow: 3px 3px 0px #000, -1px -1px 0px #000, 2px -2px 0px #000, -2px 2px 0px #000 !important;
  transform: rotate(10deg) !important;
  font-size: 36px !important;
}
.theme-graffiti .card-back {
  background: linear-gradient(45deg, #111, #333) !important;
}
.theme-graffiti .card-back .cb-inner {
  background: transparent !important;
  border: 3px solid #fff !important;
  transform: rotate(5deg) !important;
}

/* 3. Theme Origami (Zen) */
body.theme-origami {
  background: #3a4740 !important; /* Calming dark zen green to reduce eye strain */
}
body.theme-origami::before {
  /* Subtle light lines for the origami fold pattern */
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.03) 0px, rgba(255,255,255,0.03) 20px, transparent 20px, transparent 40px),
              repeating-linear-gradient(-45deg, rgba(255,255,255,0.03) 0px, rgba(255,255,255,0.03) 20px, transparent 20px, transparent 40px) !important;
  opacity: 1 !important;
  animation: none !important;
}
.theme-origami .card {
  border-radius: 0 !important;
  box-shadow: 3px 3px 12px rgba(0,0,0,0.4), inset 1px 1px 0 rgba(255,255,255,0.6) !important;
  border: 1px solid rgba(0,0,0,0.4) !important;
}
.theme-origami .card::before {
  /* Paper fold lines */
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, transparent 49%, rgba(0,0,0,0.1) 50%, transparent 51%) !important;
}
.theme-origami .card-oval {
  border-radius: 0 !important;
  transform: rotate(45deg) !important;
  background: rgba(255,255,255,0.25) !important;
  border: 1px solid rgba(0,0,0,0.15) !important;
  box-shadow: inset 1px 1px 0 rgba(255,255,255,0.5) !important;
}
.theme-origami .card-num-big {
  transform: rotate(-45deg) !important;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.2) !important;
  color: #fff !important;
  font-weight: 500 !important;
}
.theme-origami .card-num-sm {
  text-shadow: none !important;
  color: #fff !important;
  opacity: 0.9 !important;
}
.theme-origami .card-back {
  background: #d63031 !important;
}
.theme-origami .card-back .cb-inner {
  border-radius: 0 !important;
  transform: rotate(45deg) !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.4) !important;
}
.theme-origami .card-back .cb-text {
  transform: rotate(-45deg) !important;
  text-shadow: none !important;
}

/* 4. Theme Toy (Lego/Briques) */
body.theme-toy {
  background: #fdb913 !important;
}
body.theme-toy::before {
  background-image: 
    radial-gradient(circle, rgba(0,0,0,0.08) 25%, transparent 26%),
    radial-gradient(circle, rgba(255,255,255,0.25) 25%, transparent 26%) !important;
  background-size: 60px 60px !important;
  background-position: 0 0, 3px 3px !important;
  opacity: 1 !important;
  animation: none !important;
}
.theme-toy .card {
  border-radius: 8px !important;
  box-shadow: inset 0 3px 0 rgba(255,255,255,0.6), inset 0 -5px 0 rgba(0,0,0,0.25), 0 8px 0 rgba(0,0,0,0.15) !important;
  border: 5px solid #fff !important;
}
.theme-toy .card.playable:hover {
  transform: translateY(-22px) scale(1.1) !important;
  box-shadow: inset 0 3px 0 rgba(255,255,255,0.6), inset 0 -5px 0 rgba(0,0,0,0.25), 0 24px 0 rgba(0,0,0,0.2) !important;
  border-color: #f1f2f6 !important;
}
.theme-toy .card-oval {
  border-radius: 8px !important;
  box-shadow: inset 0 3px 0 rgba(0,0,0,0.15) !important;
  background: rgba(0, 0, 0, 0.1) !important;
  transform: none !important;
  width: 44px !important;
  height: 56px !important;
}
.theme-toy .card-num-big {
  transform: none !important;
  text-shadow: 0 3px 0 rgba(0,0,0,0.3) !important;
}
.theme-toy .card-back {
  background: linear-gradient(135deg, #0984e3, #74b9ff) !important;
}
.theme-toy .card-back .cb-inner {
  background: #e74c3c !important;
  border-radius: 4px !important;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,0.3) !important;
  border: none !important;
}
.theme-toy .card-back .cb-text {
  text-shadow: 0 2px 0 rgba(0,0,0,0.3) !important;
}

/* 5. Theme Default (Wood/Classic) */
body.theme-default {
  background: #5c3a21 !important;
}
body.theme-default::before {
  background: repeating-linear-gradient(90deg, transparent, transparent 120px, rgba(0,0,0,0.15) 120px, rgba(0,0,0,0.15) 123px),
              repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.05) 30px, rgba(0,0,0,0.05) 31px) !important;
  opacity: 1 !important;
  animation: none !important;
}
.theme-default .card {
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3) !important;
}
.theme-default .card::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.2) !important;
}
.theme-default .card-back {
  background: #27ae60 !important; /* Green back for classic look */
}
