/* Base typography + theme tokens */
:root {
  --brand: #10b981;
  --brand-dark: #059669;
  --sea: #14b8a6;
  --accent: #f59e0b;
}

body { -webkit-font-smoothing: antialiased; }

/* Card hover lift (used on hub + result cards) */
.card-hover { transition: transform .2s ease, box-shadow .2s ease; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(16,185,129,.45); }

/* Reusable gradient text + buttons */
.gradient-brand { background-image: linear-gradient(135deg, #10b981, #14b8a6); }
.gradient-text {
  background-image: linear-gradient(90deg, #059669, #0d9488);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---- DataTables tailwind-friendly overrides ---- */
.dataTables_wrapper { font-size: .9rem; }
.dataTables_wrapper select,
.dataTables_wrapper input[type=search] {
  border: 1px solid #d1d5db; border-radius: .5rem; padding: .35rem .6rem;
}
.dataTables_wrapper input[type=search]:focus {
  outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(16,185,129,.2);
}
table.dataTable { border-collapse: separate !important; border-spacing: 0; }
table.dataTable thead th {
  background: linear-gradient(90deg,#ecfdf5,#f0fdfa); color:#0f766e;
  border-bottom: 1px solid #a7f3d0 !important; font-weight: 600;
}
table.dataTable tbody td { border-bottom: 1px solid #f1f5f9; padding:.6rem .8rem; }
table.dataTable tbody tr:hover { background:#f0fdf4; }
.dt-buttons .dt-button {
  background: var(--brand) !important; color:#fff !important; border:none !important;
  border-radius:.5rem !important; padding:.4rem .8rem !important; margin-right:.4rem !important;
  box-shadow: 0 6px 14px -6px rgba(16,185,129,.6);
}
.dt-buttons .dt-button:hover { background: var(--brand-dark) !important; }
.paginate_button.current { background: var(--brand) !important; color:#fff !important; border:none !important; border-radius:.375rem !important; }
.paginate_button { border-radius:.375rem !important; }

/* ---- Spinner wheel ---- */
#wheelCanvas { display:block; max-width:100%; height:auto; filter: drop-shadow(0 18px 30px rgba(16,185,129,.35)); }
.spin-pointer {
  position:absolute; top:-6px; left:50%; transform:translateX(-50%);
  width:0; height:0; border-left:16px solid transparent; border-right:16px solid transparent;
  border-top:28px solid #f59e0b; filter: drop-shadow(0 4px 6px rgba(0,0,0,.25)); z-index:5;
}

/* Confetti-ish celebration pulse */
@keyframes pop { 0%{transform:scale(.8);opacity:0} 60%{transform:scale(1.05)} 100%{transform:scale(1);opacity:1} }
.animate-pop { animation: pop .4s ease-out; }

/* Helper to keep choice buttons full width */
.choice-btn { text-align:left; }
.choice-btn.selected { background-image: linear-gradient(135deg,#10b981,#14b8a6); color:#fff; border-color:transparent; }

/* Badge chips */
.badge-chip { display:inline-flex; align-items:center; gap:.25rem; font-size:.75rem; font-weight:600; padding:.15rem .55rem; border-radius:9999px; }
.badge-gold   { background:#fef3c7; color:#92400e; }
.badge-silver { background:#e2e8f0; color:#334155; }
.badge-bronze { background:#fde68a; color:#92400e; }
