/* ShadowGames Landing – Custom utilities (Tailwind handles everything else) */

/* Hero animated mesh gradient */
.hero-mesh {
    background:
        radial-gradient(ellipse 80% 50% at 25% 50%, rgba(102,126,234,.12) 0%, transparent 60%),
        radial-gradient(ellipse 60% 60% at 75% 30%, rgba(0,212,255,.08) 0%, transparent 50%),
        radial-gradient(ellipse 40% 40% at 50% 80%, rgba(118,75,162,.1) 0%, transparent 50%);
    animation: meshShift 12s ease-in-out infinite alternate;
}
@keyframes meshShift {
    0%   { opacity:.6; transform:scale(1) }
    100% { opacity:1;  transform:scale(1.08) }
}

/* Spinner */
.sg-spinner {
    width: 36px; height: 36px;
    border: 3px solid rgba(102,126,234,.15);
    border-top-color: #667eea;
    border-radius: 50%;
    animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg) } }

/* Pagination */
.sg-pagination { display:flex; justify-content:center; gap:.4rem; flex-wrap:wrap; }
.sg-pagination button {
    min-width:36px; height:36px; border-radius:8px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.03);
    color: #9ca3af; font-weight:600; font-size:.85rem;
    cursor:pointer; transition:all .2s;
}
.sg-pagination button:hover { border-color:rgba(102,126,234,.4); color:#fff; }
.sg-pagination button.active {
    background: linear-gradient(135deg,#667eea,#764ba2);
    color:#fff; border-color:transparent;
}
.sg-pagination button:disabled { opacity:.3; cursor:not-allowed; }

/* FAQ accordion */
.faq-item.open .faq-q .bi-chevron-down { transform:rotate(180deg); }
.faq-item.open .faq-a { max-height:200px; }

/* Donation tabs */
[data-donation-tab] {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.5);
}
[data-donation-tab]:hover { background:rgba(255,255,255,.08); color:#fff; }
[data-donation-tab].active {
    background: linear-gradient(135deg,#667eea,#764ba2);
    color:#fff; border-color:transparent;
}

/* Reusable CTA classes */
.cta-primary {
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.75rem 1.75rem; border-radius:.75rem;
    background:linear-gradient(135deg,#667eea,#764ba2);
    color:#fff; font-weight:700; font-size:.95rem;
    box-shadow: 0 8px 30px rgba(102,126,234,.25);
    transition:all .3s;
}
.cta-primary:hover { transform:translateY(-2px); box-shadow:0 12px 40px rgba(102,126,234,.4); color:#fff; }

.cta-sm {
    display:inline-flex; align-items:center; gap:.35rem;
    padding:.4rem 1rem; border-radius:.5rem;
    background:linear-gradient(135deg,#667eea,#764ba2);
    color:#fff; font-weight:600; font-size:.82rem;
    transition:all .3s;
}
.cta-sm:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(102,126,234,.3); color:#fff; }

/* Form inputs dark theme */
.sg-input {
    width:100%; padding:.65rem 1rem; border-radius:.5rem;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    color:#fff; font-size:.9rem;
    transition:all .2s;
}
.sg-input::placeholder { color:#6b7280; }
.sg-input:focus { outline:none; border-color:rgba(102,126,234,.5); box-shadow:0 0 0 3px rgba(102,126,234,.1); }
select.sg-input { appearance:auto; }
select.sg-input option { background:#1a1a2e; color:#fff; }

/* Form wrapper - styles all inputs inside */
.sg-form input[type="text"], .sg-form input[type="password"], .sg-form input[type="email"], .sg-form select, .sg-form textarea,
.sg-form .form-control {
    width:100%; padding:.65rem 1rem; border-radius:.5rem;
    background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
    color:#fff; font-size:.9rem; transition:all .2s;
}
.sg-form input::placeholder, .sg-form textarea::placeholder { color:#6b7280; }
.sg-form input:focus, .sg-form select:focus, .sg-form textarea:focus,
.sg-form .form-control:focus {
    outline:none; border-color:rgba(102,126,234,.5); box-shadow:0 0 0 3px rgba(102,126,234,.1);
}
.sg-form label { color: #9ca3af; font-weight: 600; }
.sg-form .form-text, .sg-form .text-muted { color: #6b7280 !important; }
.sg-form .invalid-feedback { color: #f87171; }
.sg-form .is-invalid { border-color: rgba(248,113,113,.5) !important; }

/* Modal (replacement for Bootstrap modal) */
.sg-modal-backdrop {
    position:fixed; inset:0; z-index:9998;
    background:rgba(0,0,0,.6); backdrop-filter:blur(4px);
    display:none; align-items:center; justify-content:center;
    padding:1rem; opacity:0; transition:opacity .2s;
}
.sg-modal-backdrop.show { display:flex; opacity:1; }
.sg-modal {
    background:var(--sg-dark-alt, #1a1a2e);
    border:1px solid rgba(255,255,255,.1);
    border-radius:1rem; max-width:500px; width:100%;
    max-height:90vh; overflow:auto;
    transform:scale(.95); transition:transform .2s;
}
.sg-modal-backdrop.show .sg-modal { transform:scale(1); }
.sg-modal-header { padding:1rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.08); display:flex; justify-content:space-between; align-items:center; }
.sg-modal-header h5 { color:#fff; font-weight:700; font-size:1rem; margin:0; }
.sg-modal-body { padding:1.25rem; color:rgba(255,255,255,.8); font-size:.9rem; line-height:1.8; }
.sg-modal-footer { padding:1rem 1.25rem; border-top:1px solid rgba(255,255,255,.08); }

/* User dropdown */
.user-dropdown { position: relative; }
.user-dropdown-menu {
    position: absolute; top: calc(100% + 0.5rem); right: 0;
    min-width: 200px; padding: 0.5rem;
    background: rgba(10,10,26,.98); border: 1px solid rgba(255,255,255,.08);
    border-radius: 0.75rem; box-shadow: 0 10px 40px rgba(0,0,0,.4);
    opacity: 0; visibility: hidden; transform: translateY(-4px);
    transition: opacity .2s, transform .2s, visibility .2s;
    z-index: 100;
}
.user-dropdown.open .user-dropdown-menu {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.user-dropdown-menu a, .user-dropdown-menu .dropdown-header {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.6rem 0.75rem; border-radius: 0.5rem;
    font-size: 0.875rem; transition: all .2s;
}
.user-dropdown-menu .dropdown-header {
    color: #9ca3af; font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.06);
    margin-bottom: 0.25rem;
}
.user-dropdown-menu a:hover { background: rgba(255,255,255,.06); color: #fff; }

/* Nav icon colors */
.nav-icon-home { color: #22d3ee; }
.nav-icon-server { color: #818cf8; }
.nav-icon-account { color: #34d399; }
.nav-icon-accounts { color: #a78bfa; }
.nav-icon-donate { color: #fbbf24; }
.nav-icon-unban { color: #fb7185; }
.nav-icon-key { color: #fbbf24; }
.nav-icon-ts { color: #38bdf8; }
.nav-icon-list { color: #4ade80; }
.nav-icon-discord { color: #5865f2; }
.nav-icon-mag { color: #fb923c; }
