
*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI','Inter',system-ui,sans-serif;}
:root{
  --bg:#f0f2f5;--card-bg:#fff;--primary:#3b4cca;--primary-dark:#00238f;
  --accent:#ffde00;--text-dark:#2d3748;--text-light:#5a6e8a;--border:#e2e8f0;
  --success:#48bb78;--danger:#f56565;--warning:#ed8936;--purple:#805ad5;
  --auction-gold:#f6ad55;--auction-bg:#fffbeb;--auction-border:#f6d860;
  --shadow:0 2px 12px rgba(0,0,0,.07);--shadow-lg:0 8px 32px rgba(0,0,0,.12);
}
body{background:var(--bg);min-height:100vh;color:var(--text-dark);}

/* Dark theme (applied to body.dark-theme) */
body.dark-theme {
  --bg: #1a1e2c;
  --card-bg: #2d2f3e;
  --primary: #6c5ce7;
  --primary-dark: #5a4ad1;
  --accent: #ff7675;
  --text-dark: #e2e8f0;
  --text-light: #a0aec0;
  --border: #3d4050;
  --success: #4cd964;
  --danger: #ff5e5e;
  --warning: #ff9f43;
  --auction-gold: #f6ad55;
  --auction-bg: #2d2f3e;
  --auction-border: #6c5ce7;
}

/* Additional element overrides for dark mode */
body.dark-theme .user-chip { background: #3d4050; color: #e2e8f0; }
body.dark-theme .user-chip.primary { background: #5a4ad1; color: white; }
body.dark-theme .tab:hover { background: #3d4050; color: var(--primary); }
body.dark-theme .tab.active { background: var(--primary); color: white; }
body.dark-theme .tab.auction-tab.active { background: linear-gradient(135deg, #f6ad55, #ed8936); }
body.dark-theme .pokemon-card.shiny-card { background: linear-gradient(to bottom, #2d2f3e, #232536); border-color: #ecc94b; }
body.dark-theme .card-img-wrap { background: #1e2230; }
body.dark-theme .bid-section { background: #1e2230; border-color: #3d4050; }
body.dark-theme .bidder-item { border-bottom-color: #3d4050; }
body.dark-theme .modal-box { background: var(--card-bg); }
body.dark-theme .modal-foot { background: #1e2230; }
body.dark-theme .form-group input,
body.dark-theme .form-group select,
body.dark-theme .form-group textarea { background: #1a1e2c; color: #e2e8f0; border-color: var(--border); }
body.dark-theme .form-group input:focus,
body.dark-theme .form-group select:focus,
body.dark-theme .form-group textarea:focus { background: #2d2f3e; }
body.dark-theme .poke-preview-card { background: #1e2230; border-color: var(--primary); }
body.dark-theme .poke-preview-card.shiny-preview { background: #232536; border-color: #ecc94b; }
body.dark-theme .pp-empty { background: #1e2230; border-color: var(--border); }
body.dark-theme .move-table th { background: #1e2230; color: var(--text-light); }
body.dark-theme .move-table td { border-bottom-color: var(--border); }
body.dark-theme .move-table tr:hover td { background: #2d2f3e; }
body.dark-theme .selected-moves-row { background: #1e2230; }
body.dark-theme .poke-want-preview { background: #1e2230; border-color: var(--border); }
body.dark-theme .req-tag { background: #3d4050; color: var(--primary); border-color: #5a4ad1; }
body.dark-theme .req-tag.gold { background: #4a3a1a; color: var(--warning); border-color: #f6d860; }
body.dark-theme .req-tag.danger { background: #4a1a1a; color: var(--danger); border-color: #fed7d7; }
body.dark-theme .bid-slot.filled { background: #3d4050; border-color: var(--primary); }
body.dark-theme .settings-card { background: var(--auction-bg); border-color: var(--auction-border); }
body.dark-theme .settings-card h4 { color: #f6ad55; }
body.dark-theme .loading-state .spin { border-top-color: var(--primary); }
body.dark-theme .reward-poke-wrap { background: #1e2230; border-color: var(--border); }
body.dark-theme .reward-poke-img { border-bottom-color: var(--border); }
body.dark-theme #toast { background: var(--primary-dark); }
body.dark-theme #toast.success { background: var(--success); }
body.dark-theme #toast.error { background: var(--danger); }

/* ── NAV ── */
.top-nav{background:var(--card-bg);padding:10px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:200;box-shadow:var(--shadow);flex-wrap:wrap;gap:10px;}
.nav-logo img{height:38px;}
.user-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.user-chip{background:#fef9e3;padding:5px 14px;border-radius:40px;font-weight:700;font-size:.82rem;display:flex;align-items:center;gap:6px;white-space:nowrap;}
.user-chip.primary{background:#eef2ff;color:var(--primary);}

/* ── MAIN LAYOUT ── */
.main-wrap{max-width:1280px;margin:0 auto;padding:20px 16px;}

/* ── TABS ── */
.tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--border);flex-wrap:wrap;overflow-x:auto;}
.tab{padding:10px 18px;cursor:pointer;font-weight:600;border-radius:12px 12px 0 0;transition:.15s;background:transparent;border:none;font-size:.88rem;color:var(--text-light);white-space:nowrap;display:flex;align-items:center;gap:6px;}
.tab:hover{background:#eef2ff;color:var(--primary);}
.tab.active{background:var(--primary);color:white;}
.tab.auction-tab.active{background:linear-gradient(135deg,#f6ad55,#ed8936);color:white;}
.tab.auction-tab{color:var(--warning);}
.tab-badge{background:var(--danger);color:white;border-radius:20px;padding:1px 7px;font-size:.65rem;font-weight:700;}

/* ── SECTION HEADER ── */
.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px;}
.section-top h2{font-size:1.2rem;font-weight:800;color:var(--primary-dark);display:flex;align-items:center;gap:8px;}
.section-top p{font-size:.8rem;color:var(--text-light);margin-top:2px;}

/* ── MARKET GRID ── */
.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin-top:4px;}

/* ── POKEMON CARD ── */
.pokemon-card{background:var(--card-bg);border-radius:20px;border:2px solid var(--border);overflow:hidden;transition:transform .2s,box-shadow .2s;position:relative;}
.pokemon-card:hover{transform:translateY(-5px);box-shadow:0 12px 36px rgba(0,0,0,.15);}

/* ── SHINY CARD ── */
.pokemon-card.shiny-card {
    border-color: #f6c90e;
    background: linear-gradient(160deg, #fffef0 0%, #fff8c0 40%, #fffde0 100%);
    box-shadow: 0 0 0 1px #f6c90e, 0 4px 12px rgba(0,0,0,0.08);
}
.pokemon-card.shiny-card .card-img-wrap {
    background: linear-gradient(160deg, #fffde7, #fff9c4);
    position: relative;
    overflow: hidden;
}

/* Shiny sparkles on the card BG — using pseudo on the card itself */
.pokemon-card.shiny-card::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(2px 2px at 12% 20%, rgba(255,215,0,1)   0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 30% 55%, rgba(255,255,255,0.95) 0%, transparent 100%),
        radial-gradient(2px 2px at 48% 15%, rgba(255,215,0,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 62% 72%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 75% 35%, rgba(255,215,0,1) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 88% 60%, rgba(255,255,255,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 22% 82%, rgba(255,215,0,0.85) 0%, transparent 100%),
        radial-gradient(2px 2px at 55% 90%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 92% 18%, rgba(255,215,0,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 40% 45%, rgba(255,255,255,0.6) 0%, transparent 100%);
    animation: shiny-sparkle 2.4s ease-in-out infinite;
}
@keyframes shiny-sparkle {
    0%,100% { opacity: 0.3; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.03); }
}

/* Sparkles also inside image area */
.pokemon-card.shiny-card .card-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(2px 2px at 15% 25%, rgba(255,215,0,1)    0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 40% 65%, rgba(255,255,255,0.95) 0%, transparent 100%),
        radial-gradient(2px 2px at 70% 20%, rgba(255,215,0,0.9)  0%, transparent 100%),
        radial-gradient(1px 1px at 85% 75%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 55% 45%, rgba(255,215,0,1) 0%, transparent 100%),
        radial-gradient(1px 1px at 25% 85%, rgba(255,255,255,0.7) 0%, transparent 100%);
    animation: shiny-sparkle 2.4s ease-in-out infinite;
}

/* ── TERA CARD — GALACTIC CRYSTAL ── */
@keyframes tera-galaxy-bg {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes tera-outer-glow {
    0%,100% {
        box-shadow:
            0 0 0 2px #7c6ff7,
            0 0 18px 4px rgba(108,92,231,0.45),
            0 0 40px 8px rgba(162,155,254,0.2);
    }
    50% {
        box-shadow:
            0 0 0 2px #a29bfe,
            0 0 32px 8px rgba(108,92,231,0.75),
            0 0 70px 16px rgba(162,155,254,0.35);
    }
}
@keyframes tera-border-shift {
    0%,100% { border-color: #7c6ff7; }
    33%      { border-color: #a78bfa; }
    66%      { border-color: #c084fc; }
}
.pokemon-card.tera-card, .auction-card.tera-card {
    border: 2px solid #7c6ff7;
    background: linear-gradient(135deg,
        #0d0221 0%,
        #1a0533 15%,
        #0f1f6e 35%,
        #1a0533 55%,
        #060d3f 75%,
        #1a0533 100%
    );
    background-size: 300% 300%;
    animation:
        tera-galaxy-bg 6s ease infinite,
        tera-outer-glow 2.5s ease-in-out infinite,
        tera-border-shift 4s ease infinite;
}

/* Sparkles scattered across the full card BG */
.pokemon-card.tera-card::before, .auction-card.tera-card::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(2px 2px at 8%  18%, rgba(255,255,255,0.95) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 20% 72%, rgba(180,160,255,0.9) 0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 35% 40%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1px 1px at 50% 88%, rgba(200,180,255,0.95) 0%, transparent 100%),
        radial-gradient(2px 2px at 65% 22%, rgba(255,255,255,0.9)  0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 78% 58%, rgba(162,155,254,1) 0%, transparent 100%),
        radial-gradient(1px 1px at 90% 35%, rgba(255,255,255,0.7)  0%, transparent 100%),
        radial-gradient(2px 2px at 15% 92%, rgba(200,180,255,0.85) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 45% 12%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1px 1px at 82% 80%, rgba(180,160,255,0.9)  0%, transparent 100%),
        radial-gradient(2px 2px at 60% 65%, rgba(255,255,255,0.6)  0%, transparent 100%),
        radial-gradient(1px 1px at 28% 30%, rgba(162,155,254,0.8)  0%, transparent 100%);
    animation: tera-card-sparkle 3s ease-in-out infinite;
}
@keyframes tera-card-sparkle {
    0%,100% { opacity: 0.4; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.02); }
}
.pokemon-card.tera-card .card-img-wrap, .auction-card.tera-card .card-img-wrap {
    background: linear-gradient(160deg, #0d0221, #1a0a3d, #0f1f6e);
    background-size: 200% 200%;
    position: relative;
    overflow: hidden;
    animation: tera-galaxy-bg 5s ease infinite;
}

/* Starfield layer */
.pokemon-card.tera-card .card-img-wrap::before, .auction-card.tera-card .card-img-wrap::before {
    content: '';
    position: absolute;
    inset: -20px;
    background-image:
        radial-gradient(1px 1px at 10% 15%, rgba(255,255,255,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 25% 60%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 40% 25%, rgba(200,180,255,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 55% 80%, rgba(255,255,255,0.6) 0%, transparent 100%),
        radial-gradient(1px 1px at 70% 10%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 80% 45%, rgba(180,160,255,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 90% 70%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 15% 85%, rgba(200,180,255,0.8) 0%, transparent 100%),
        radial-gradient(1px 1px at 60% 50%, rgba(255,255,255,0.5) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 35% 90%, rgba(162,155,254,0.9) 0%, transparent 100%);
    pointer-events: none;
    animation: tera-stars 4s ease-in-out infinite;
    z-index: 1;
}
@keyframes tera-stars {
    0%,100% { opacity: 0.6; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.04); }
}

/* Crystal nebula overlay */
.pokemon-card.tera-card .card-img-wrap::after, .auction-card.tera-card .card-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 20%, rgba(108,92,231,0.55) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 80%, rgba(192,132,252,0.4) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 50%, rgba(14,10,60,0.3) 0%, transparent 70%);
    pointer-events: none;
    animation: tera-nebula 3.5s ease-in-out infinite;
    z-index: 2;
}
@keyframes tera-nebula {
    0%,100% { opacity: 0.7; }
    50%      { opacity: 1; }
}

/* Card body dark galaxy text contrast */
.pokemon-card.tera-card .card-body, .auction-card.tera-card .card-body {
    background: linear-gradient(180deg, #1a0a3d 0%, #0d0221 100%);
}
.pokemon-card.tera-card .poke-name, .auction-card.tera-card .poke-name {
    color: #e0d7ff;
    text-shadow: 0 0 10px rgba(162,155,254,0.8);
}
.pokemon-card.tera-card .level-row,
.pokemon-card.tera-card .owner-row,
.auction-card.tera-card .level-row,
.auction-card.tera-card .owner-row {
    color: #a29bfe;
}
.pokemon-card.tera-card .price-tag, .auction-card.tera-card .price-tag {
    color: #c084fc;
}
.pokemon-card.tera-card .card-footer, .auction-card.tera-card .card-footer {
    background: #0d0221;
    border-top-color: #3d2d6e;
}
.auction-card.tera-card .auction-timer {
    background: linear-gradient(135deg, #4a3891, #6c5ce7);
    color: #e0d7ff;
}
.auction-card.shiny-tera-card .auction-timer {
    background: linear-gradient(135deg, #b7791f, #805ad5);
    color: white;
}

/* Dark mode — even deeper space */
body.dark-theme .pokemon-card.tera-card, body.dark-theme .auction-card.tera-card {
    background: linear-gradient(135deg, #06010f 0%, #0d0221 30%, #060d3f 60%, #0d0221 100%);
    background-size: 300% 300%;
}
body.dark-theme .pokemon-card.tera-card .card-img-wrap,
body.dark-theme .auction-card.tera-card .card-img-wrap {
    background: linear-gradient(160deg, #06010f, #0d0221, #060d3f);
}
body.dark-theme .pokemon-card.tera-card .card-body, body.dark-theme .auction-card.tera-card .card-body {
    background: linear-gradient(180deg, #0d0221 0%, #06010f 100%);
}

/* ══════════════════════════════════════════
   ✨💠 SHINY + TERA — COSMIC GOLDEN NEBULA
══════════════════════════════════════════ */
@keyframes st-card-bg {
    0%   { background-position: 0% 50%; }
    33%  { background-position: 100% 0%; }
    66%  { background-position: 50% 100%; }
    100% { background-position: 0% 50%; }
}
@keyframes st-border-cycle {
    0%   { border-color: #f6c90e; box-shadow: 0 0 0 2px #f6c90e, 0 0 24px 6px rgba(246,201,14,0.5), 0 0 60px 10px rgba(246,201,14,0.15); }
    25%  { border-color: #e879f9; box-shadow: 0 0 0 2px #e879f9, 0 0 32px 8px rgba(232,121,249,0.55), 0 0 70px 14px rgba(232,121,249,0.2); }
    50%  { border-color: #a29bfe; box-shadow: 0 0 0 2px #a29bfe, 0 0 32px 8px rgba(162,155,254,0.6), 0 0 70px 14px rgba(108,92,231,0.25); }
    75%  { border-color: #f6c90e; box-shadow: 0 0 0 2px #f6c90e, 0 0 28px 6px rgba(246,201,14,0.5), 0 0 60px 10px rgba(246,201,14,0.15); }
    100% { border-color: #e879f9; box-shadow: 0 0 0 2px #e879f9, 0 0 32px 8px rgba(232,121,249,0.55), 0 0 70px 14px rgba(232,121,249,0.2); }
}
.pokemon-card.shiny-tera-card, .auction-card.shiny-tera-card {
    border: 2px solid #f6c90e;
    background: linear-gradient(135deg,
        #1a0a00 0%,
        #2d0a4e 20%,
        #1a1200 40%,
        #3d0066 60%,
        #1a0a00 80%,
        #2a1800 100%
    );
    background-size: 400% 400%;
    animation:
        st-card-bg 5s ease infinite,
        st-border-cycle 4s ease infinite;
}

/* Sparkles on Shiny+Tera full card BG — gold + purple mix */
.pokemon-card.shiny-tera-card::before, .auction-card.shiny-tera-card::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(2.5px 2.5px at 7%  15%, rgba(255,215,0,1)    0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 18% 68%, rgba(232,121,249,0.95) 0%, transparent 100%),
        radial-gradient(2px 2px at 32% 35%, rgba(255,255,255,0.9)    0%, transparent 100%),
        radial-gradient(1px 1px at 47% 82%, rgba(255,215,0,0.85)     0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 60% 18%, rgba(232,121,249,1)  0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 73% 55%, rgba(255,215,0,0.9)  0%, transparent 100%),
        radial-gradient(1px 1px at 85% 30%, rgba(255,255,255,0.8)    0%, transparent 100%),
        radial-gradient(2px 2px at 92% 75%, rgba(232,121,249,0.85)   0%, transparent 100%),
        radial-gradient(1px 1px at 25% 90%, rgba(255,215,0,0.9)      0%, transparent 100%),
        radial-gradient(2px 2px at 52% 50%, rgba(255,255,255,0.6)    0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 40% 10%, rgba(162,155,254,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 78% 90%, rgba(255,215,0,0.8)      0%, transparent 100%);
    animation: st-card-sparkle 2.8s ease-in-out infinite;
}
@keyframes st-card-sparkle {
    0%,100% { opacity: 0.35; transform: scale(1)    rotate(0deg); }
    33%      { opacity: 0.8;  transform: scale(1.02) rotate(0.5deg); }
    66%      { opacity: 0.5;  transform: scale(1.01) rotate(-0.5deg); }
    100%     { opacity: 0.35; transform: scale(1)    rotate(0deg); }
}

/* ── Image area: deep cosmic gold+purple ── */
.pokemon-card.shiny-tera-card .card-img-wrap,
.auction-card.shiny-tera-card .card-img-wrap {
    background: linear-gradient(135deg, #1a0a00, #2d0a4e, #1a1200, #3d0066);
    background-size: 300% 300%;
    position: relative;
    overflow: hidden;
    animation: st-card-bg 6s ease infinite;
}

/* ── Starfield (gold-tinted stars) ── */
.pokemon-card.shiny-tera-card .card-img-wrap::before,
.auction-card.shiny-tera-card .card-img-wrap::before {
    content: '';
    position: absolute;
    inset: -20px;
    background-image:
        radial-gradient(1px 1px at 8%  12%, rgba(255,215,0,1)    0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 22% 55%, rgba(255,255,255,0.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 38% 20%, rgba(232,121,249,1)  0%, transparent 100%),
        radial-gradient(2px 2px at 50% 75%, rgba(255,215,0,0.9)  0%, transparent 100%),
        radial-gradient(1px 1px at 65% 8%,  rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 78% 42%, rgba(162,155,254,1) 0%, transparent 100%),
        radial-gradient(1px 1px at 88% 68%, rgba(255,215,0,0.8)  0%, transparent 100%),
        radial-gradient(1px 1px at 14% 82%, rgba(232,121,249,0.9) 0%, transparent 100%),
        radial-gradient(2px 2px at 55% 48%, rgba(255,255,255,0.6) 0%, transparent 100%),
        radial-gradient(1px 1px at 32% 88%, rgba(255,215,0,1)    0%, transparent 100%),
        radial-gradient(1px 1px at 92% 22%, rgba(232,121,249,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 70% 90%, rgba(162,155,254,0.9) 0%, transparent 100%);
    pointer-events: none;
    z-index: 1;
    animation: st-stars 3s ease-in-out infinite;
}
@keyframes st-stars {
    0%,100% { opacity: 0.55; transform: scale(1)    rotate(0deg); }
    50%      { opacity: 1;    transform: scale(1.05) rotate(1deg); }
}

/* ── Dual nebula: gold + purple clouds ── */
.pokemon-card.shiny-tera-card .card-img-wrap::after,
.auction-card.shiny-tera-card .card-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 15% 15%, rgba(246,201,14,0.45)  0%, transparent 45%),
        radial-gradient(ellipse at 85% 85%, rgba(162,155,254,0.45) 0%, transparent 45%),
        radial-gradient(ellipse at 85% 15%, rgba(232,121,249,0.3)  0%, transparent 40%),
        radial-gradient(ellipse at 15% 85%, rgba(108,92,231,0.3)   0%, transparent 40%),
        radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.35)       0%, transparent 65%);
    pointer-events: none;
    z-index: 2;
    animation: st-nebula 3.5s ease-in-out infinite;
}
@keyframes st-nebula {
    0%   { opacity: 0.6; background-position: 0% 0%; }
    50%  { opacity: 1;   background-position: 100% 100%; }
    100% { opacity: 0.6; background-position: 0% 0%; }
}

/* ── Card body: deep cosmic ── */
.pokemon-card.shiny-tera-card .card-body,
.auction-card.shiny-tera-card .card-body {
    background: linear-gradient(180deg, #2d0a4e 0%, #1a0a00 100%);
}
.pokemon-card.shiny-tera-card .poke-name,
.auction-card.shiny-tera-card .poke-name {
    background: linear-gradient(90deg, #f6c90e, #e879f9, #a29bfe);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    background-size: 200% 200%;
    animation: st-name-shimmer 3s ease infinite;
    text-shadow: none;
    font-size: 1.15rem;
}
@keyframes st-name-shimmer {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.pokemon-card.shiny-tera-card .level-row,
.auction-card.shiny-tera-card .level-row,
.pokemon-card.shiny-tera-card .owner-row,
.auction-card.shiny-tera-card .owner-row {
    color: #d4a8ff;
}
.pokemon-card.shiny-tera-card .price-tag,
.auction-card.shiny-tera-card .price-tag {
    color: #f6c90e;
    text-shadow: 0 0 10px rgba(246,201,14,0.6);
}
.pokemon-card.shiny-tera-card .card-footer,
.auction-card.shiny-tera-card .card-footer {
    background: #1a0a00;
    border-top-color: #4a2060;
}
.auction-card.shiny-tera-card .auction-timer {
    background: linear-gradient(135deg, #7c3f00, #4a0080);
    color: #f6c90e;
    text-shadow: 0 0 8px rgba(246,201,14,0.5);
}

/* ── Dark mode ── */
body.dark-theme .pokemon-card.shiny-tera-card,
body.dark-theme .auction-card.shiny-tera-card {
    background: linear-gradient(135deg, #0d0500 0%, #1a0533 25%, #0a0800 50%, #200040 75%, #0d0500 100%);
    background-size: 400% 400%;
}
body.dark-theme .pokemon-card.shiny-tera-card .card-img-wrap,
body.dark-theme .auction-card.shiny-tera-card .card-img-wrap {
    background: linear-gradient(135deg, #0d0500, #1a0533, #0a0800, #200040);
    background-size: 300% 300%;
}
body.dark-theme .pokemon-card.shiny-tera-card .card-body,
body.dark-theme .auction-card.shiny-tera-card .card-body {
    background: linear-gradient(180deg, #1a0533 0%, #0d0500 100%);
}

/* ── CARD BADGES (inline in badge row, not absolute) ── */
.card-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 30px;
    font-size: 0.68rem;
    font-weight: 700;
    backdrop-filter: blur(2px);
    white-space: nowrap;
}
.shiny-badge {
    background: linear-gradient(135deg, #f6c90e, #ffb300);
    color: #5a3e00;
    box-shadow: 0 2px 8px rgba(246,201,14,0.4);
}
.terastal-badge {
    background: linear-gradient(135deg, #6c5ce7, #a29bfe);
    color: white;
    box-shadow: 0 2px 8px rgba(108,92,231,0.4);
    animation: tera-badge-pulse 2s ease-in-out infinite;
}
@keyframes tera-badge-pulse {
    0%,100% { box-shadow: 0 2px 8px rgba(108,92,231,0.35); }
    50%      { box-shadow: 0 2px 14px rgba(108,92,231,0.7); }
}
.shiny-tera-badge {
    background: linear-gradient(135deg, #f6c90e, #c084fc, #f6c90e);
    background-size: 200% 200%;
    color: #2d2f3e;
    animation: shiny-tera-badge 3s ease infinite;
    box-shadow: 0 2px 10px rgba(192,132,252,0.5);
}
@keyframes shiny-tera-badge {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.special-badge {
    background: linear-gradient(135deg, #f6d365, #fda085);
    color: #5a2d00;
}
.auction-badge { background: linear-gradient(135deg,var(--auction-gold),var(--warning)); color: white; }
.my-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 30px;
    font-size: 0.68rem;
    font-weight: 700;
    background: var(--primary);
    color: white;
}

/* ── SPRITE EFFECTS ── */
.sprite-shiny {
    filter: drop-shadow(0 0 6px rgba(246,201,14,0.8)) drop-shadow(0 0 14px rgba(246,201,14,0.4));
    animation: shiny-sprite 2.5s ease-in-out infinite;
}
@keyframes shiny-sprite {
    0%,100% { filter: drop-shadow(0 0 6px rgba(246,201,14,0.7)) drop-shadow(0 2px 8px rgba(0,0,0,.15)); }
    50%      { filter: drop-shadow(0 0 14px rgba(246,201,14,1))  drop-shadow(0 0 28px rgba(255,220,0,0.6)); }
}
.sprite-tera {
    filter: drop-shadow(0 0 8px rgba(108,92,231,0.9)) drop-shadow(0 2px 8px rgba(0,0,0,.15));
    animation: tera-sprite 2.5s ease-in-out infinite;
}
@keyframes tera-sprite {
    0%,100% { filter: drop-shadow(0 0 6px rgba(108,92,231,0.7))  drop-shadow(0 2px 8px rgba(0,0,0,.15)); }
    50%      { filter: drop-shadow(0 0 18px rgba(162,155,254,1))  drop-shadow(0 0 30px rgba(108,92,231,0.6)); }
}

.sprite-shiny-tera {
    animation: shiny-tera-sprite 2.5s ease-in-out infinite, st-sprite-scale 5s ease-in-out infinite;
    transform-origin: center bottom;
}
@keyframes shiny-tera-sprite {
    0%   { filter: drop-shadow(0 0 12px rgba(246,201,14,1))    drop-shadow(0 0 24px rgba(246,201,14,0.6))  drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
    25%  { filter: drop-shadow(0 0 14px rgba(232,121,249,1))   drop-shadow(0 0 28px rgba(232,121,249,0.7)) drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
    50%  { filter: drop-shadow(0 0 16px rgba(162,155,254,1))   drop-shadow(0 0 32px rgba(108,92,231,0.8))  drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
    75%  { filter: drop-shadow(0 0 14px rgba(232,121,249,1))   drop-shadow(0 0 28px rgba(232,121,249,0.7)) drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
    100% { filter: drop-shadow(0 0 12px rgba(246,201,14,1))    drop-shadow(0 0 24px rgba(246,201,14,0.6))  drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
}
@keyframes st-sprite-scale {
    0%,100% { transform: scale(1)    translateY(0px); }
    50%      { transform: scale(1.06) translateY(-4px); }
}

.card-body{padding:14px;}
.poke-name{font-size:1.1rem;font-weight:800;color:var(--text-dark);display:flex;align-items:center;justify-content:space-between;gap:4px;}
.bonus-icons{font-size:.9rem;}
.types-row{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0;}
.type-badge{display:inline-block;padding:2px 8px;border-radius:16px;font-size:.62rem;font-weight:700;color:white;text-shadow:0 1px 1px rgba(0,0,0,.2);}
.level-row{font-size:.8rem;color:var(--text-light);margin:4px 0;}
.moves-row{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0;}
.move-pill{padding:2px 8px;border-radius:20px;font-size:.62rem;font-weight:600;color:white;text-shadow:0 1px 1px rgba(0,0,0,.2);}
.price-tag{font-size:1.1rem;font-weight:800;color:var(--primary);margin:8px 0;}
.price-tag.wants{font-size:.9rem;color:var(--text-dark);}
.owner-row{font-size:.75rem;color:var(--text-light);margin:3px 0;}
.card-footer{padding:10px 14px;border-top:1px solid var(--border);display:flex;gap:6px;flex-wrap:wrap;}
.card-img-wrap{background:#f8fafc;padding:16px;text-align:center;border-bottom:1px solid var(--border);position:relative;min-height:140px;display:flex;align-items:center;justify-content:center;flex-direction:column;}
/* ── AUCTION CARD ── */
.auction-card{background:var(--auction-bg);border:1px solid var(--auction-border);border-radius:20px;overflow:hidden;transition:transform .18s,box-shadow .18s;position:relative;}
.auction-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(246,173,85,.25);}
.auction-timer{background:linear-gradient(135deg,var(--warning),#f6ad55);color:white;padding:6px 14px;text-align:center;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;}
.bid-section{background:#fff;border:1px solid var(--auction-border);border-radius:12px;padding:10px 12px;margin:10px 0;}
.bid-row{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;margin:3px 0;}
.bid-label{color:var(--text-light);font-weight:600;}
.bid-value{font-weight:700;color:var(--text-dark);}
.bidders-list{margin-top:8px;}
.bidder-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:.78rem;}
.bidder-item:last-child{border-bottom:none;}
.bidder-avatar{width:24px;height:24px;border-radius:50%;background:var(--primary);color:white;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;flex-shrink:0;}
.bidder-pokemon-pills{display:flex;gap:3px;flex-wrap:wrap;}
.bidder-poke-thumb{width:20px;height:20px;image-rendering:pixelated;}

/* ── BUTTONS ── */
.btn{padding:8px 16px;border:none;border-radius:40px;cursor:pointer;font-weight:600;transition:.15s;font-size:.82rem;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.btn-primary{background:var(--primary);color:white;}
.btn-primary:hover{background:var(--primary-dark);}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-light);}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);}
.btn-danger{background:var(--danger);color:white;}
.btn-danger:hover{background:#e53e3e;}
.btn-success{background:var(--success);color:white;}
.btn-success:hover{background:#38a169;}
.btn-gold{background:linear-gradient(135deg,#f6ad55,#ed8936);color:white;}
.btn-gold:hover{filter:brightness(.92);}
.btn-sm{padding:5px 12px;font-size:.75rem;}
.btn:disabled{opacity:.45;cursor:not-allowed;}

/* ── MODALS ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:5000;backdrop-filter:blur(4px);padding:16px;}
.modal-box{background:var(--card-bg);border-radius:24px;width:100%;max-width:780px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden;}
.modal-box.sm{max-width:460px;}
.modal-box.lg{max-width:960px;}
.modal-head{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.modal-head h3{font-size:1.05rem;font-weight:800;color:var(--primary-dark);display:flex;align-items:center;gap:7px;}
.modal-body{padding:20px 22px;overflow-y:auto;flex:1;}
.modal-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center;flex-shrink:0;background:#f8fafc;border-radius:0 0 24px 24px;}
.close-x{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-light);padding:4px;border-radius:6px;transition:.15s;}
.close-x:hover{background:#f1f5f9;color:var(--text-dark);}
.hidden{display:none!important;}

/* ── FORM ── */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-row.three{grid-template-columns:1fr 1fr 1fr;}
@media(max-width:580px){.form-row,.form-row.three{grid-template-columns:1fr;}}
.form-group{margin-bottom:14px;}
.form-group label{display:block;font-size:.76rem;font-weight:700;color:var(--text-light);margin-bottom:5px;text-transform:uppercase;letter-spacing:.4px;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 13px;border:1px solid var(--border);border-radius:12px;font-size:.9rem;background:var(--bg);color:var(--text-dark);transition:.2s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,76,202,.1);background:white;}
.checkbox-group{display:flex;gap:14px;flex-wrap:wrap;padding:8px 0;}
.chk-label{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;}
.chk-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;}

/* ── POKEMON PREVIEW IN FORM ── */
.poke-preview-card{background:linear-gradient(135deg,#f8fafc,#eef2ff);border:2px solid var(--primary);border-radius:16px;padding:14px;display:flex;align-items:center;gap:14px;margin-top:8px;transition:.2s;}
.poke-preview-card img{width:80px;height:80px;object-fit:contain;image-rendering:pixelated;flex-shrink:0;}
.poke-preview-card.shiny-preview{border-color:#ecc94b;background:linear-gradient(135deg,#fffff0,#fefce8);}
.pp-name{font-weight:800;font-size:1rem;color:var(--primary-dark);}
.pp-detail{font-size:.75rem;color:var(--text-light);margin-top:2px;}
.pp-empty{text-align:center;padding:16px;color:var(--text-light);background:#f8fafc;border:2px dashed var(--border);border-radius:12px;margin-top:8px;font-size:.82rem;}

/* ── MOVE SELECTOR ── */
.move-search-input{width:100%;padding:8px 14px;border:1px solid var(--border);border-radius:40px;font-size:.85rem;margin-bottom:10px;background:var(--bg);}
.move-search-input:focus{outline:none;border-color:var(--primary);}
.move-table-wrap{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;}
.move-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.move-table th{padding:7px 12px;background:#f8fafc;font-weight:700;font-size:.72rem;color:var(--text-light);text-transform:uppercase;position:sticky;top:0;border-bottom:1px solid var(--border);}
.move-table td{padding:7px 12px;border-bottom:1px solid var(--border);}
.move-table tr:hover td{background:#f8fafc;}
.move-check{text-align:center;width:42px;}
.move-check input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;}
.selected-moves-row{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;margin-top:8px;padding:6px;background:#f8fafc;border-radius:10px;}
.sel-move-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:700;color:white;}
.sel-move-pill button{background:rgba(0,0,0,.2);border:none;color:white;border-radius:50%;width:14px;height:14px;cursor:pointer;font-size:.6rem;display:flex;align-items:center;justify-content:center;padding:0;}

/* ── POKEMON PICKER (for trade offer what pokemon u want) ── */
.poke-want-preview{background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;align-items:center;gap:12px;margin-top:6px;}
.poke-want-preview img{width:56px;height:56px;object-fit:contain;image-rendering:pixelated;}

/* ── TRADE REQUIREMENTS TAGS ── */
.req-tags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0;}
.req-tag{padding:3px 10px;border-radius:20px;font-size:.68rem;font-weight:700;background:#eef2ff;color:var(--primary);border:1px solid #c3cff9;}
.req-tag.gold{background:#fffbeb;color:var(--warning);border-color:#f6d860;}
.req-tag.danger{background:#fff5f5;color:var(--danger);border-color:#fed7d7;}

/* ── AUCTION BIDDING ── */
.bid-pokemon-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0;}
.bid-slot{border:2px dashed var(--border);border-radius:12px;padding:8px;text-align:center;cursor:pointer;transition:.15s;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
.bid-slot.filled{border-color:var(--primary);border-style:solid;background:#eef2ff;}
.bid-slot img{width:44px;height:44px;object-fit:contain;image-rendering:pixelated;}
.bid-slot .slot-name{font-size:.6rem;font-weight:700;margin-top:2px;color:var(--primary-dark);}
.bid-slot .remove-slot{position:absolute;top:2px;right:4px;background:var(--danger);color:white;border:none;border-radius:50%;width:16px;height:16px;cursor:pointer;font-size:.6rem;display:flex;align-items:center;justify-content:center;}
.bid-slot.add-slot{color:var(--text-light);font-size:.75rem;}
.bid-slot.add-slot:hover{border-color:var(--primary);color:var(--primary);}

/* ── AUCTION SETTINGS CARD ── */
.settings-card{background:var(--auction-bg);border:1px solid var(--auction-border);border-radius:14px;padding:14px 16px;margin-bottom:16px;}
.settings-card h4{font-size:.85rem;font-weight:700;color:#b7791f;margin-bottom:10px;display:flex;align-items:center;gap:6px;}

/* ── LOADING / EMPTY ── */
.loading-state,.empty-state{text-align:center;padding:48px 20px;color:var(--text-light);}
.loading-state .spin{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 12px;}
@keyframes spin{to{transform:rotate(360deg)}}
.empty-state i{font-size:2.5rem;opacity:.35;margin-bottom:10px;}
.empty-state p{font-size:.9rem;}

/* ── REWARD MODAL ── */
.reward-poke-wrap{background:#f8fafc;border-radius:16px;border:1px solid var(--border);overflow:hidden;margin:12px 0;}
.reward-poke-img{padding:18px;text-align:center;border-bottom:1px solid var(--border);}
.reward-poke-img img{width:140px;height:140px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));}
.reward-poke-info{padding:14px;}

/* ── TOAST ── */
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--primary-dark);color:white;border-radius:40px;padding:10px 22px;font-size:.82rem;font-weight:600;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.2);}
#toast.show{opacity:1;}
#toast.success{background:var(--success);}
#toast.error{background:var(--danger);}

/* ── RESPONSIVE ── */
@media(max-width:640px){
  .market-grid{grid-template-columns:1fr;}
  .bid-pokemon-slots{grid-template-columns:repeat(3,1fr);}
  .modal-box{border-radius:16px;}
  .top-nav{padding:8px 14px;}
}

/* ----- Bonus Pills (Wild & Form) ----- */
.bonus-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 0.62rem;
    font-weight: 700;
    color: white;
    text-shadow: 0 1px 1px rgba(0,0,0,0.2);
    white-space: nowrap;
}
.bonus-pill.atk { background: #ff6b6b; }
.bonus-pill.def { background: #4dabf7; }
.bonus-pill.spd { background: #69db7c; color: #1a4731; }

/* Form bonuses – orange theme */
.bonus-pill.form { background: #ffb347; color: #7a2e00; }
.bonus-pill.form.def { background: #ffa559; color: #5e2a00; }
.bonus-pill.form.spd { background: #ffc966; color: #6b3c00; }

/* Shiny bonus (golden pill) */
.shiny-bonus-pill {
    background: #ffd700;
    color: #b7791f;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 0.6rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.bonus-pill.tera {
    background: linear-gradient(135deg, #6c5ce7, #a29bfe);
    color: white;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 0.68rem;
    font-weight: 700;
    display: inline-block;
}

/* Add to your styles */
.move-pill {
  cursor: help;
  position: relative;
}

.move-pill:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #333;
  color: white;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 0.7rem;
  white-space: nowrap;
  z-index: 10;
  pointer-events: none;
}

body.dark-theme .auction-card .description {
  background: rgba(255,255,255,0.08);
  color: var(--text-dark);
}

/* Custom scrollbar for bids list */
.bidders-list::-webkit-scrollbar {
  width: 6px;
}

.bidders-list::-webkit-scrollbar-track {
  background: var(--border);
  border-radius: 10px;
}

.bidders-list::-webkit-scrollbar-thumb {
  background: var(--primary);
  border-radius: 10px;
}

.bidders-list::-webkit-scrollbar-thumb:hover {
  background: var(--primary-dark);
}

/* Make sure loader is on top */
#loader-modal {
  z-index: 10000;
}

#loader-modal .modal-box {
  background: var(--card-bg);
  border: 2px solid var(--primary);
}
