/**
 * Top 100 Voting Plugin - Theme-Protected Frontend Styles
 * All styles use high specificity to prevent theme conflicts
 * Version: 2.0 - Pure CSS (No Tailwind)
 */

/* ============================================
   CSS RESET FOR PLUGIN CONTAINERS
   ============================================ */
.top100-mobile-wrapper,
.top100-mobile-wrapper *,
.top100-request-form-wrapper,
.top100-request-form-wrapper * {
    box-sizing: border-box !important;
    margin: 0;
    padding: 0;
}

/* ============================================
   BASE WRAPPER STYLES
   ============================================ */
.top100-mobile-wrapper {
    width: 100% !important;
    font-family: var(--top100-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif) !important;
    line-height: 1.5 !important;
    -webkit-font-smoothing: antialiased !important;
}

/* ============================================
   VIBEVOTE APP-LIKE LAYOUT (Chart)
   ============================================ */

.top100-mobile-wrapper.vv-app {
    width: 100% !important;
    max-width: var(--top100-page-width, 100%) !important;
    margin: var(--top100-page-margin-top, 10px) auto var(--top100-page-margin-bottom, 10px) auto !important;
    padding: var(--top100-page-padding-top, 28px) var(--top100-page-padding-right, 28px) var(--top100-page-padding-bottom, 28px) var(--top100-page-padding-left, 28px) !important;
    border-radius: 26px !important;
}

.top100-mobile-wrapper .vv-header {
    padding: 10px 2px 18px 2px !important;
}

.top100-mobile-wrapper .vv-header-title {
    font-size: 44px !important;
    font-weight: 900 !important;
    letter-spacing: -0.03em !important;
    line-height: 1.05 !important;
}

@media (max-width: 768px) {
    .top100-mobile-wrapper .vv-header-title {
        font-size: 34px !important;
    }
}

.top100-mobile-wrapper .vv-header-subtitle {
    margin-top: 8px !important;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 14px !important;
}

.top100-mobile-wrapper .vv-header-badges {
    margin-top: 12px !important;
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    align-items: center !important;
}

.top100-mobile-wrapper .vv-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.top100-mobile-wrapper .vv-badge strong {
    font-weight: 900 !important;
}

.top100-mobile-wrapper .vv-muted {
    color: rgba(255, 255, 255, 0.62) !important;
    font-weight: 600 !important;
}

.top100-mobile-wrapper .vv-dot {
    width: 8px !important;
    height: 8px !important;
    border-radius: 999px !important;
    background: #22c55e !important;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15) !important;
}

.top100-mobile-wrapper .vv-search {
    margin-top: 16px !important;
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 14px !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
}

.top100-mobile-wrapper .vv-input {
    flex: 1 !important;
    min-width: 0 !important;
    height: 44px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    background: rgba(0, 0, 0, 0.25) !important;
    color: rgba(255, 255, 255, 0.92) !important;
    padding: 0 14px !important;
    outline: none !important;
}

.top100-mobile-wrapper .vv-input::placeholder {
    color: rgba(255, 255, 255, 0.45) !important;
}

.top100-mobile-wrapper .vv-btn {
    height: 44px !important;
    padding: 0 16px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: rgba(255, 255, 255, 0.92) !important;
    font-weight: 800 !important;
    cursor: pointer !important;
}

.top100-mobile-wrapper .vv-btn:hover {
    border-color: rgba(255, 255, 255, 0.24) !important;
    filter: brightness(1.06);
}

.top100-mobile-wrapper .vv-chips {
    margin-top: 12px !important;
    margin-bottom: 14px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

/* Mobile: avoid huge genre chip wall; use modal instead */
@media (max-width: 768px) {
    .top100-mobile-wrapper .vv-chips .vv-genre-chip {
        display: none !important;
    }
}

/* ============================================
   GENRE MODAL (Mobile)
   ============================================ */
.top100-mobile-wrapper .vv-genre-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    background: rgba(0, 0, 0, 0.65) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.18s ease, visibility 0.18s ease;
}

.top100-mobile-wrapper .vv-genre-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.top100-mobile-wrapper .vv-genre-modal {
    width: 100% !important;
    max-width: 560px !important;
    background: var(--vv-card, rgba(17, 24, 39, 0.92)) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 22px !important;
    padding: 18px !important;
    box-shadow: 0 22px 80px rgba(0,0,0,0.55) !important;
}

.top100-mobile-wrapper .vv-genre-head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
}

.top100-mobile-wrapper .vv-genre-title {
    font-size: 18px !important;
    font-weight: 900 !important;
    color: rgba(255,255,255,0.96) !important;
}

.top100-mobile-wrapper .vv-genre-close {
    width: 40px !important;
    height: 40px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    background: rgba(255,255,255,0.06) !important;
    color: rgba(255,255,255,0.92) !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.top100-mobile-wrapper .vv-genre-search {
    margin-top: 12px !important;
}

.top100-mobile-wrapper .vv-genre-input {
    width: 100% !important;
    height: 44px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255,255,255,0.14) !important;
    background: rgba(0,0,0,0.25) !important;
    color: rgba(255,255,255,0.92) !important;
    padding: 0 14px !important;
    outline: none !important;
}

.top100-mobile-wrapper .vv-genre-input::placeholder {
    color: rgba(255,255,255,0.45) !important;
}

.top100-mobile-wrapper .vv-genre-tabs {
    margin-top: 12px !important;
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

.top100-mobile-wrapper .vv-genre-tab {
    height: 36px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,0.14) !important;
    background: rgba(255,255,255,0.06) !important;
    color: rgba(255,255,255,0.92) !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    cursor: pointer !important;
}

.top100-mobile-wrapper .vv-genre-tab.is-active {
    background: rgba(255, 0, 146, 0.22) !important;
    border-color: rgba(255, 0, 146, 0.38) !important;
}

.top100-mobile-wrapper .vv-genre-list {
    margin-top: 12px !important;
    max-height: 420px !important;
    overflow: auto !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,0.10) !important;
    background: rgba(0,0,0,0.18) !important;
}

.top100-mobile-wrapper .vv-genre-item {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 14px 14px !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.92) !important;
    cursor: pointer !important;
    text-align: left !important;
}

.top100-mobile-wrapper .vv-genre-item:hover {
    background: rgba(255,255,255,0.06) !important;
}

.top100-mobile-wrapper .vv-genre-item.is-selected {
    background: rgba(34, 197, 94, 0.14) !important;
}

.top100-mobile-wrapper .vv-genre-selected {
    font-size: 12px !important;
    font-weight: 900 !important;
    color: rgba(34,197,94,0.95) !important;
}

.top100-mobile-wrapper .vv-genre-empty {
    padding: 16px !important;
    color: rgba(255,255,255,0.70) !important;
    font-size: 13px !important;
}

.top100-mobile-wrapper .vv-chip {
    height: 36px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: rgba(255, 255, 255, 0.92) !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    cursor: pointer !important;
}

.top100-mobile-wrapper .vv-chip.is-active {
    background: rgba(255, 0, 146, 0.22) !important;
    border-color: rgba(255, 0, 146, 0.38) !important;
}

/* ============================================
   VIBEVOTE CARD (Song layout)
   ============================================ */

.top100-mobile-wrapper .top100-track-card.vv-card {
    padding: 18px !important;
}

.top100-mobile-wrapper .vv-row {
    display: flex !important;
    gap: 14px !important;
    align-items: flex-start !important;
}

.top100-mobile-wrapper .vv-rank {
    width: 56px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding-top: 4px !important;
}

.top100-mobile-wrapper .vv-rank-num {
    font-size: 22px !important;
    font-weight: 900 !important;
    /* Sync with Settings -> Chart & Voting Display Colors */
    color: var(--chart-rank-color, #6D4BE9) !important;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
    -webkit-text-stroke: 0.5px var(--chart-rank-text-color, #ffffff) !important;
    line-height: 1 !important;
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .vv-rank-num {
        font-size: 30px !important;
    }
}

.top100-mobile-wrapper .vv-rank-move {
    margin-top: 6px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.top100-mobile-wrapper .vv-move-icon {
    width: 16px !important;
    height: 16px !important;
    display: block !important;
}

.top100-mobile-wrapper .vv-move-count {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: inherit !important;
}

.top100-mobile-wrapper .vv-cover {
    width: var(--vv-cover-size, 56px) !important;
    height: var(--vv-cover-size, 56px) !important;
    border-radius: var(--vv-cover-radius, 14px) !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    flex: 0 0 auto !important;
}

.top100-mobile-wrapper .vv-cover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.top100-mobile-wrapper .vv-main {
    min-width: 0 !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

.top100-mobile-wrapper .vv-top {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
}

.top100-mobile-wrapper .vv-title {
    font-weight: 900 !important;
    font-size: 16px !important;
    color: rgba(255,255,255,0.96) !important;
    line-height: 1.15 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.top100-mobile-wrapper .vv-artist {
    font-size: 13px !important;
    color: rgba(255,255,255,0.70) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.top100-mobile-wrapper .vv-meta {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

.top100-mobile-wrapper .vv-pill {
    display: inline-flex !important;
    align-items: center !important;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    background: rgba(255,255,255,0.06) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    color: rgba(255,255,255,0.75) !important;
    line-height: 1 !important;
}

.top100-mobile-wrapper .vv-pill.vv-pill-accent {
    background: rgba(255, 200, 90, 0.10) !important;
    border-color: rgba(255, 200, 90, 0.22) !important;
    color: rgba(255, 200, 90, 0.95) !important;
}

.top100-mobile-wrapper .vv-actions {
    margin-top: 12px !important;
    display: flex !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
    align-items: flex-end !important;
    width: 100% !important;
    justify-content: space-between !important;
}

/* Icon row: fixed group on the left */
.top100-mobile-wrapper .vv-icon-row {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

@media (max-width: 768px) {
    /* Mobile: lock icons bottom-left and vote bottom-right (no jumping) */
    .top100-mobile-wrapper .vv-actions {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        align-items: end !important;
        column-gap: 12px !important;
        row-gap: 10px !important;
        justify-content: stretch !important;
    }

    .top100-mobile-wrapper .vv-icon-row {
        grid-column: 1 !important;
        /* Keep icons near the vote button (right side) */
        justify-self: end !important;
        justify-content: flex-end !important;
    }

    .top100-mobile-wrapper .vv-actions .top100-vote-button.vv-vote {
        grid-column: 2 !important;
        justify-self: end !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 360px) {
    /* Super small: stack vote under icons */
    .top100-mobile-wrapper .vv-actions {
        grid-template-columns: 1fr !important;
    }
    .top100-mobile-wrapper .vv-actions .top100-vote-button.vv-vote {
        grid-column: 1 !important;
        justify-self: start !important;
    }
}

/* Keep vote anchored right */
.top100-mobile-wrapper .vv-actions .top100-vote-button.vv-vote {
    flex: 0 0 auto !important;
}

/* (mobile rules handled above) */

.top100-mobile-wrapper .top100-vote-button.vv-vote {
    border-radius: 14px !important;
    height: 40px !important;
    padding: 0 14px !important;
    font-weight: 900 !important;
    border: 0 !important;
    display: inline-flex !important;
    gap: 10px !important;
    align-items: center !important;
    overflow: hidden !important;
    cursor: pointer !important;
    box-shadow: 0 10px 25px rgba(255,0,146,0.18) !important;
    min-width: 112px !important;
    justify-content: center !important;
}

.top100-mobile-wrapper .top100-vote-button.vv-vote svg {
    flex: 0 0 auto !important;
}

/* In VibeVote cards the vote label should stay visible on mobile too */
.top100-mobile-wrapper .top100-vote-button.vv-vote .vote-text-desktop {
    display: inline !important;
}

@media (max-width: 640px) {
    .top100-mobile-wrapper .top100-vote-button.vv-vote {
        min-width: 104px !important;
    }
}

.top100-mobile-wrapper .vv-vote-count {
    display: inline-flex !important;
    align-items: center !important;
    padding: 2px 10px !important;
    border-radius: 12px !important;
    background: rgba(0,0,0,0.25) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.top100-mobile-wrapper .vv-mini {
    height: 40px !important;
    padding: 0 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255,255,255,0.14) !important;
    background: rgba(255,255,255,0.06) !important;
    color: rgba(255,255,255,0.92) !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.top100-mobile-wrapper .vv-mini:hover {
    border-color: rgba(255,255,255,0.24) !important;
    filter: brightness(1.06);
}

.top100-mobile-wrapper .vv-mini-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.top100-mobile-wrapper .vv-mini-icon svg {
    width: 18px;
    height: 18px;
    display: block;
}

/* Mobile/tablet: icon-only media buttons (match app) */
@media (max-width: 768px) {
    .top100-mobile-wrapper .vv-actions .vv-mini {
        width: 40px !important;
        padding: 0 !important;
        justify-content: center !important;
        border-radius: 14px !important;
    }
    .top100-mobile-wrapper .vv-actions .vv-mini .vv-mini-text {
        display: none !important;
    }
}

/* Share icon-only everywhere */
.top100-mobile-wrapper .vv-share-btn.vv-mini .vv-mini-text { display: none !important; }

/* Clean action buttons (match app: vote is primary; others are calm link-style) */
.top100-mobile-wrapper .vv-actions .vv-mini {
    height: 40px !important;
    padding: 0 10px !important;
    border-radius: 14px !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    color: rgba(255, 255, 255, 0.90) !important;
    transform: none !important;
    gap: 8px !important;
}

.top100-mobile-wrapper .vv-actions .vv-mini:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

/* Override legacy solid button fills for the new card layout */
.top100-mobile-wrapper .vv-actions .youtube-play-btn.vv-mini,
.top100-mobile-wrapper .vv-actions .spotify-play-btn.vv-mini {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

.top100-mobile-wrapper .vv-actions .youtube-play-btn.vv-mini:hover,
.top100-mobile-wrapper .vv-actions .spotify-play-btn.vv-mini:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Share: icon-only button shape everywhere */
.top100-mobile-wrapper .vv-actions .vv-share-btn.vv-mini {
    width: 40px !important;
    padding: 0 !important;
    justify-content: center !important;
}

.top100-mobile-wrapper .vv-actions .youtube-play-btn.vv-mini .vv-mini-icon { color: #ef4444 !important; }
.top100-mobile-wrapper .vv-actions .spotify-play-btn.vv-mini .vv-mini-icon { color: #22c55e !important; }
.top100-mobile-wrapper .vv-actions .vv-share-btn.vv-mini .vv-mini-icon { color: rgba(255,255,255,0.88) !important; }

/* Calm the vote glow but keep gradient */
.top100-mobile-wrapper .top100-vote-button.vv-vote {
    box-shadow: 0 10px 22px rgba(255, 0, 146, 0.12) !important;
}

/* Apply the same VibeVote surface to the request form page too */
.top100-request-form-wrapper {
    font-family: var(--top100-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif) !important;
    background:
        radial-gradient(900px 500px at 15% 15%, color-mix(in srgb, var(--vv-accent0) 25%, transparent), transparent 65%),
        radial-gradient(700px 420px at 85% 20%, color-mix(in srgb, var(--vv-accent1) 25%, transparent), transparent 60%),
        radial-gradient(800px 520px at 60% 95%, var(--vv-teal), transparent 65%),
        linear-gradient(180deg, var(--vv-bg0), var(--vv-bg1)) !important;
    border-radius: 22px !important;
    padding: 16px !important;
    position: relative !important;
    overflow: hidden !important;
}

.top100-request-form-wrapper::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="3" stitchTiles="stitch"/></filter><rect width="160" height="160" filter="url(%23n)" opacity="0.35"/></svg>');
    mix-blend-mode: overlay;
    opacity: 0.08;
}

.top100-request-form-wrapper .top100-request-form {
    background: var(--vv-card, rgba(17, 24, 39, 0.92)) !important;
    border: 1px solid var(--vv-glass-border) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
}

/* ============================================
   VIBEVOTE GLASS THEME (scoped to plugin)
   ============================================ */

.top100-mobile-wrapper {
    --vv-bg0: color-mix(in srgb, var(--chart-header-bg-start, #ff0092) 18%, #020617);
    --vv-bg1: #020617;
    --vv-glass: rgba(255, 255, 255, 0.06);
    --vv-glass-border: rgba(255, 255, 255, 0.12);
    --vv-text: var(--chart-card-text, #f8fafc);
    --vv-muted: rgba(255, 255, 255, 0.72);
    --vv-accent0: var(--chart-header-bg-start, #ff0092);
    --vv-accent1: var(--chart-header-bg-end, #7500eb);
    --vv-teal: rgba(34, 211, 238, 0.18);
    --vv-card: color-mix(in srgb, var(--chart-card-bg, #111827) 80%, transparent);

    background:
        radial-gradient(900px 500px at 15% 15%, color-mix(in srgb, var(--vv-accent0) 25%, transparent), transparent 65%),
        radial-gradient(700px 420px at 85% 20%, color-mix(in srgb, var(--vv-accent1) 25%, transparent), transparent 60%),
        radial-gradient(800px 520px at 60% 95%, var(--vv-teal), transparent 65%),
        linear-gradient(180deg, var(--vv-bg0), var(--vv-bg1)) !important;
    border-radius: 22px !important;
    padding: 16px !important;
    position: relative !important;
    overflow: hidden !important;
}

.top100-mobile-wrapper::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="3" stitchTiles="stitch"/></filter><rect width="160" height="160" filter="url(%23n)" opacity="0.35"/></svg>');
    mix-blend-mode: overlay;
    opacity: 0.08;
}

/* ============================================
   CHART HEADER
   ============================================ */
.top100-mobile-wrapper .top100-chart-header {
    border-radius: 1rem !important;
    padding: 1rem !important;
    margin-bottom: 1rem !important;
    box-shadow: 0 18px 55px rgba(0,0,0,0.45) !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-chart-header {
        padding: 1.5rem !important;
        margin-bottom: 1.5rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-chart-header {
        padding: 2rem !important;
    }
}

.top100-mobile-wrapper .top100-chart-title {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    text-align: center !important;
    margin-bottom: 0.5rem !important;
    word-wrap: break-word !important;
    line-height: 1.2 !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-chart-title {
        font-size: 1.875rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-chart-title {
        font-size: 2.25rem !important;
    }
}

.top100-mobile-wrapper .top100-chart-description {
    text-align: center !important;
    font-size: 1rem !important;
    margin-bottom: 0.75rem !important;
    opacity: 0.95 !important;
    word-wrap: break-word !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-chart-description {
        font-size: 1.125rem !important;
    }
}

.top100-mobile-wrapper .top100-chart-subtitle {
    text-align: center !important;
    font-size: 1rem !important;
    opacity: 0.9 !important;
    word-wrap: break-word !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-chart-subtitle {
        font-size: 1.125rem !important;
    }
}

/* ============================================
   VOTING STATUS BANNER
   ============================================ */
.top100-mobile-wrapper .top100-voting-status-banner {
    background-color: rgba(239, 68, 68, 0.1) !important;
    border-left: 4px solid #dc2626 !important;
    padding: 1rem !important;
    margin-bottom: 1.5rem !important;
    border-radius: 0.5rem !important;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1) !important;
}

.top100-mobile-wrapper .top100-status-flex {
    display: flex !important;
    align-items: center !important;
}

.top100-mobile-wrapper .top100-status-icon {
    flex-shrink: 0 !important;
    width: 1.25rem !important;
    height: 1.25rem !important;
    color: #f87171 !important;
}

.top100-mobile-wrapper .top100-status-content {
    margin-left: 0.75rem !important;
}

.top100-mobile-wrapper .top100-status-title {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: #991b1b !important;
}

.top100-mobile-wrapper .top100-status-message {
    margin-top: 0.5rem !important;
    font-size: 0.875rem !important;
    color: #7f1d1d !important;
}

/* ============================================
   TRACKS CONTAINER
   ============================================ */
.top100-mobile-wrapper .top100-tracks-container {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-tracks-container {
        gap: 1rem !important;
    }
}

/* ============================================
   TRACK CARD
   ============================================ */
.top100-mobile-wrapper .top100-track-card {
    border-radius: 1rem !important;
    padding: 0.75rem !important;
    padding-left: 2rem !important;
    width: 100% !important;
    overflow: hidden !important;
    transition: all 0.2s ease !important;
    background: var(--vv-card, rgba(17, 24, 39, 0.92)) !important;
    border: 1px solid var(--vv-glass-border) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-track-card {
        padding: 1rem !important;
        padding-left: 2.5rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-track-card {
        padding: 1.25rem !important;
        padding-left: 3rem !important;
    }
}

.top100-mobile-wrapper .top100-track-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1) !important;
}

/* Track Row Layout */
.top100-mobile-wrapper .top100-track-row {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    width: 100% !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-track-row {
        gap: 1rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-track-row {
        gap: 1.5rem !important;
    }
}

/* ============================================
   THUMBNAIL SECTION
   ============================================ */
.top100-mobile-wrapper .top100-thumbnail-container {
    flex-shrink: 0 !important;
    position: relative !important;
}

.top100-mobile-wrapper .top100-thumbnail-wrapper {
    position: relative !important;
    width: 5rem !important;
    height: 5rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-thumbnail-wrapper {
        width: 6rem !important;
        height: 6rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-thumbnail-wrapper {
        width: 7rem !important;
        height: 7rem !important;
    }
}

.top100-mobile-wrapper .top100-thumbnail {
    width: 100% !important;
    height: 100% !important;
    border-radius: 0.5rem !important;
    object-fit: cover !important;
    cursor: pointer !important;
    transition: opacity 0.2s ease !important;
}

.top100-mobile-wrapper .top100-thumbnail:hover {
    opacity: 0.9 !important;
}

/* Rank Badge */
.top100-mobile-wrapper .top100-rank-overlay {
    position: absolute !important;
    bottom: -0.5rem !important;
    left: -0.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.top100-mobile-wrapper .top100-rank-badge {
    border-radius: 0.5rem !important;
    padding: 0.25rem 0.5rem !important;
    font-weight: 900 !important;
    font-size: 0.875rem !important;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1) !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-rank-badge {
        font-size: 1rem !important;
    }
}

.top100-mobile-wrapper .top100-movement-badge {
    border-radius: 0.375rem !important;
    padding: 0.125rem 0.375rem !important;
    color: white !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    margin-top: 0.25rem !important;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1) !important;
}

/* ============================================
   TRACK INFO SECTION
   ============================================ */
.top100-mobile-wrapper .top100-track-info {
    flex-grow: 1 !important;
    min-width: 0 !important;
    padding-right: 0.5rem !important;
    text-align: left !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-track-info {
        padding-right: 1rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-track-info {
        padding-top: 0.75rem !important;
    }
}

.top100-mobile-wrapper .top100-track-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin-bottom: 0.125rem !important;
    word-wrap: break-word !important;
    line-height: 1.25 !important;
    text-align: left !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-track-title {
        font-size: 1.125rem !important;
        margin-bottom: 0.25rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-track-title {
        font-size: 1.25rem !important;
        margin-bottom: 0.5rem !important;
    }
}

.top100-mobile-wrapper .top100-track-artist {
    font-size: 0.875rem !important;
    word-wrap: break-word !important;
    margin-bottom: 0 !important;
    text-align: left !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-track-artist {
        font-size: 1rem !important;
        margin-bottom: 0.25rem !important;
    }
}

.top100-mobile-wrapper .top100-track-year {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    margin-bottom: 0 !important;
    text-align: left !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-track-year {
        margin-bottom: 0.25rem !important;
    }
}

.top100-mobile-wrapper .top100-track-genre {
    font-size: 0.875rem !important;
    margin-bottom: 0.75rem !important;
    opacity: 0.7 !important;
    text-align: left !important;
}

.top100-mobile-wrapper .top100-submitter-email {
    font-size: 0.75rem !important;
    color: #6b7280 !important;
    margin-top: 0.25rem !important;
    word-wrap: break-word !important;
    text-align: left !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-submitter-email {
        font-size: 0.875rem !important;
    }
}

/* ============================================
   MEDIA BUTTONS (YouTube, Spotify)
   ============================================ */
.top100-mobile-wrapper .top100-media-buttons {
    display: flex !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
}

.top100-mobile-wrapper .youtube-play-btn,
.top100-mobile-wrapper .spotify-play-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
    padding: 0.375rem 0.75rem !important;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    border-radius: 9999px !important;
    color: white !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1) !important;
}

.top100-mobile-wrapper .youtube-play-btn {
    background: #FF0000 !important;
}

.top100-mobile-wrapper .youtube-play-btn:hover {
    background: #cc0000 !important;
    transform: scale(1.05) !important;
    box-shadow: 0 4px 12px rgba(255, 0, 0, 0.4) !important;
}

.top100-mobile-wrapper .spotify-play-btn {
    background: #1DB954 !important;
}

.top100-mobile-wrapper .spotify-play-btn:hover {
    background: #1ed760 !important;
    transform: scale(1.05) !important;
    box-shadow: 0 4px 12px rgba(29, 185, 84, 0.4) !important;
}

.top100-mobile-wrapper .top100-media-icon {
    width: 1rem !important;
    height: 1rem !important;
}

.top100-mobile-wrapper .top100-media-text {
    display: none !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-media-text {
        display: inline !important;
    }
}

/* ============================================
   VOTE SECTION
   ============================================ */
.top100-mobile-wrapper .top100-vote-section {
    flex-shrink: 0 !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding-right: 0.5rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-vote-section {
        padding-right: 1rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-vote-section {
        padding-right: 1.5rem !important;
    }
}

.top100-mobile-wrapper .top100-vote-count {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    margin-bottom: 0.25rem !important;
    text-align: center !important;
    line-height: 1.2 !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-vote-count {
        font-size: 1.875rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-vote-count {
        font-size: 2.25rem !important;
    }
}

.top100-mobile-wrapper .top100-vote-label {
    font-size: 0.75rem !important;
    margin-bottom: 0.5rem !important;
    opacity: 0.6 !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-vote-label {
        font-size: 0.875rem !important;
        margin-bottom: 0.75rem !important;
    }
}

/* ============================================
   VOTE BUTTON
   ============================================ */
.top100-mobile-wrapper .top100-vote-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    border-radius: 9999px !important;
    font-family: inherit !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    outline: none !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    padding: 0.5rem 0.75rem !important;
    font-size: 0.75rem !important;
    min-width: 3rem !important;
    height: 2.5rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-vote-button {
        padding: 0.625rem 1.5rem !important;
        font-size: 0.875rem !important;
        height: auto !important;
        min-width: auto !important;
        gap: 0.5rem !important;
    }
}

@media (min-width: 768px) {
    .top100-mobile-wrapper .top100-vote-button {
        padding: 0.75rem 2rem !important;
    }
}

.top100-mobile-wrapper .top100-vote-button:hover:not(:disabled) {
    transform: translateY(-1px) scale(1.02) !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15) !important;
}

.top100-mobile-wrapper .top100-vote-button:active:not(:disabled) {
    transform: translateY(0) scale(0.98) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.top100-mobile-wrapper .top100-vote-button:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

.top100-mobile-wrapper .vote-icon-mobile {
    width: 1.25rem !important;
    height: 1.25rem !important;
    display: inline-block !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .vote-icon-mobile {
        display: none !important;
    }
}

.top100-mobile-wrapper .vote-icon-desktop {
    width: 1.25rem !important;
    height: 1.25rem !important;
    display: none !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .vote-icon-desktop {
        display: inline-block !important;
    }
}

.top100-mobile-wrapper .vote-text-desktop {
    display: none !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .vote-text-desktop {
        display: inline !important;
    }
}

/* Vote button states */
.top100-mobile-wrapper .vote-loading .vote-icon-mobile,
.top100-mobile-wrapper .vote-loading .vote-icon-desktop {
    animation: top100-spin 1s linear infinite !important;
}

.top100-mobile-wrapper .vote-success .vote-icon-mobile,
.top100-mobile-wrapper .vote-success .vote-icon-desktop {
    animation: top100-pulse-success 0.6s ease-in-out !important;
}

/* ============================================
   EMPTY STATE
   ============================================ */
.top100-mobile-wrapper .top100-empty-state {
    text-align: center !important;
    padding: 2rem 0 !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-empty-state {
        padding: 4rem 0 !important;
    }
}

.top100-mobile-wrapper .top100-empty-icon {
    font-size: 2.25rem !important;
    margin-bottom: 1rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-empty-icon {
        font-size: 3.75rem !important;
    }
}

.top100-mobile-wrapper .top100-empty-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: #374151 !important;
    margin-bottom: 0.5rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-empty-title {
        font-size: 1.5rem !important;
    }
}

.top100-mobile-wrapper .top100-empty-text {
    color: #6b7280 !important;
    font-size: 1rem !important;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .top100-empty-text {
        font-size: 1.125rem !important;
    }
}

/* ============================================
   ANIMATIONS
   ============================================ */
@keyframes top100-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes top100-pulse-success {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

@keyframes top100-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.top100-mobile-wrapper .top100-animate-pulse {
    animation: top100-pulse 1s ease-in-out !important;
}

.top100-mobile-wrapper .top100-ring {
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5) !important;
}

/* ============================================
   MODALS (YouTube, Spotify, Image)
   ============================================ */
.youtube-modal-overlay,
.spotify-modal-overlay,
.image-modal-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.youtube-modal-overlay { background: rgba(0, 0, 0, 0.9) !important; }
.spotify-modal-overlay { background: rgba(0, 0, 0, 0.85) !important; }
.image-modal-overlay { background: rgba(0, 0, 0, 0.95) !important; }

.youtube-modal-overlay.active,
.spotify-modal-overlay.active,
.image-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.youtube-modal-content {
    background: #1a1a1a;
    border-radius: 12px;
    width: 90%;
    max-width: 800px;
    padding: 20px;
    position: relative;
    transform: scale(0.9);
    transition: transform 0.3s ease;
}

.spotify-modal-content {
    background: #282828;
    border-radius: 12px;
    width: 90%;
    max-width: 400px;
    padding: 20px;
    position: relative;
    transform: scale(0.9);
    transition: transform 0.3s ease;
}

.youtube-modal-overlay.active .youtube-modal-content,
.spotify-modal-overlay.active .spotify-modal-content {
    transform: scale(1);
}

.youtube-modal-close,
.spotify-modal-close {
    position: absolute;
    top: 10px;
    right: 10px;
    color: white;
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.youtube-modal-close { background: #FF0000; }
.youtube-modal-close:hover { background: #cc0000; }
.spotify-modal-close { background: #1DB954; }
.spotify-modal-close:hover { background: #1ed760; }

.youtube-modal-title,
.spotify-modal-title {
    color: white;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 15px;
    padding-right: 40px;
}

.youtube-iframe-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.youtube-iframe-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 8px;
}

/* Image Modal */
.image-modal-content {
    position: relative;
    text-align: center;
}

.image-modal-content img {
    max-width: 90vw;
    max-height: 80vh;
    border-radius: 8px;
    box-shadow: 0 25px 50px rgba(0,0,0,0.5);
}

.image-modal-content p {
    color: white;
    text-align: center;
    margin-top: 15px;
    font-size: 18px;
    font-weight: 500;
}

.image-modal-close {
    position: absolute;
    top: -45px;
    right: 0;
    background: none;
    border: none;
    color: white;
    cursor: pointer;
    font-size: 36px;
    line-height: 1;
}

/* ============================================
   SHARE MODAL (VibeVote)
   ============================================ */
.top100-mobile-wrapper .vv-share-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
    background: rgba(0, 0, 0, 0.65) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.18s ease, visibility 0.18s ease;
}

.top100-mobile-wrapper .vv-share-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.top100-mobile-wrapper .vv-share-modal {
    width: 100% !important;
    max-width: 520px !important;
    background: var(--vv-card, rgba(17, 24, 39, 0.92)) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 22px !important;
    padding: 22px !important;
    box-shadow: 0 22px 80px rgba(0,0,0,0.55) !important;
    position: relative !important;
}

.top100-mobile-wrapper .vv-share-modal:before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 22px;
    pointer-events: none;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.08), 0 40px 120px rgba(204, 51, 255, 0.12);
}

.top100-mobile-wrapper .vv-share-head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 14px !important;
    margin-bottom: 18px !important;
}

.top100-mobile-wrapper .vv-share-title {
    font-size: 22px !important;
    font-weight: 900 !important;
    color: rgba(255,255,255,0.96) !important;
    letter-spacing: -0.02em !important;
}

.top100-mobile-wrapper .vv-share-subtitle {
    margin-top: 6px !important;
    font-size: 13px !important;
    color: rgba(255,255,255,0.70) !important;
}

.top100-mobile-wrapper .vv-share-close {
    width: 40px !important;
    height: 40px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    background: rgba(255,255,255,0.06) !important;
    color: rgba(255,255,255,0.92) !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.top100-mobile-wrapper .vv-share-close:hover {
    border-color: rgba(255,255,255,0.20) !important;
    background: rgba(255,255,255,0.09) !important;
}

.top100-mobile-wrapper .vv-share-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-bottom: 18px !important;
}

.top100-mobile-wrapper .vv-share-tile {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 14px !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    color: rgba(255,255,255,0.92) !important;
    text-decoration: none !important;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.top100-mobile-wrapper .vv-share-tile:hover {
    background: rgba(255,255,255,0.09) !important;
    border-color: rgba(255, 0, 146, 0.28) !important;
}

.top100-mobile-wrapper .vv-share-ico {
    width: 22px !important;
    height: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.top100-mobile-wrapper #vv-share-twitter .vv-share-ico { color: #1DA1F2 !important; }
.top100-mobile-wrapper #vv-share-facebook .vv-share-ico { color: #1877F2 !important; }
.top100-mobile-wrapper #vv-share-whatsapp .vv-share-ico { color: #25D366 !important; }
.top100-mobile-wrapper #vv-share-email .vv-share-ico { color: rgba(255,255,255,0.72) !important; }

.top100-mobile-wrapper .vv-share-label {
    font-size: 13px !important;
    font-weight: 800 !important;
}

.top100-mobile-wrapper .vv-share-copy-label {
    font-size: 13px !important;
    font-weight: 800 !important;
    color: rgba(255,255,255,0.92) !important;
    margin-bottom: 10px !important;
}

.top100-mobile-wrapper .vv-share-copy-row {
    display: flex !important;
    gap: 10px !important;
}

.top100-mobile-wrapper .vv-share-input {
    flex: 1 !important;
    height: 40px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,0.14) !important;
    background: rgba(0,0,0,0.25) !important;
    color: rgba(255,255,255,0.92) !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    outline: none !important;
}

.top100-mobile-wrapper .vv-share-copy-btn {
    height: 40px !important;
    padding: 0 14px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,0.14) !important;
    background: rgba(122, 34, 255, 0.55) !important;
    color: rgba(255,255,255,0.95) !important;
    font-weight: 900 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.top100-mobile-wrapper .vv-share-copy-btn:hover {
    filter: brightness(1.08);
}

.top100-mobile-wrapper .vv-share-copy-text {
    display: none;
}

@media (min-width: 640px) {
    .top100-mobile-wrapper .vv-share-copy-text {
        display: inline;
    }
}

/* ============================================
   REQUEST FORM STYLES
   ============================================ */
.top100-request-form-wrapper {
    max-width: 600px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

.top100-request-form-wrapper .top100-form-header {
    padding: 20px !important;
    border-radius: 10px !important;
    margin-bottom: 20px !important;
}

.top100-request-form-wrapper .top100-form-title {
    margin: 0 0 10px 0 !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
}

.top100-request-form-wrapper .top100-form-description {
    opacity: 0.9 !important;
}

.top100-request-form-wrapper .top100-request-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    border-radius: 8px !important;
    margin: 30px 0 !important;
    padding: 20px !important;
}

.top100-request-form-wrapper .form-section {
    margin-bottom: 1rem !important;
}

.top100-request-form-wrapper .section-title {
    margin: 0 0 15px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.top100-request-form-wrapper .form-group {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin-bottom: 1rem !important;
}

.top100-request-form-wrapper .form-label {
    font-weight: 500 !important;
    font-size: 0.875rem !important;
}

.top100-request-form-wrapper .form-input,
.top100-request-form-wrapper .top100-form-input {
    padding: 12px 15px !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    transition: all 0.3s ease !important;
    font-family: inherit !important;
    box-sizing: border-box !important;
    width: 100% !important;
    background: white !important;
}

.top100-request-form-wrapper .form-input:focus,
.top100-request-form-wrapper .top100-form-input:focus {
    outline: none !important;
    border-color: var(--chart-rank-color, #6D4BE9) !important;
    box-shadow: 0 0 0 3px rgba(109, 75, 233, 0.2) !important;
}

.top100-request-form-wrapper .form-help {
    font-size: 13px !important;
    margin-top: 4px !important;
    line-height: 1.4 !important;
    color: #6b7280 !important;
}

.top100-request-form-wrapper .form-row {
    display: flex !important;
    gap: 15px !important;
    align-items: flex-start !important;
}

.top100-request-form-wrapper .form-group.half {
    flex: 1 !important;
}

.top100-request-form-wrapper .form-submit-section {
    text-align: center !important;
    margin-top: 30px !important;
    padding-top: 20px !important;
}

.top100-request-form-wrapper .top100-submit-button,
.top100-request-form-wrapper .submit-btn {
    border: none !important;
    padding: 14px 32px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}

.top100-request-form-wrapper .top100-submit-button:hover:not(:disabled),
.top100-request-form-wrapper .submit-btn:hover:not(:disabled) {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
}

.top100-request-form-wrapper .form-note {
    margin-top: 1rem !important;
    font-size: 0.875rem !important;
    color: #6b7280 !important;
}

/* Mobile responsive for form */
@media (max-width: 768px) {
    .top100-request-form-wrapper {
        margin: 10px !important;
        padding: 15px !important;
    }
    
    .top100-request-form-wrapper .form-row {
        flex-direction: column !important;
        gap: 15px !important;
    }
    
    .top100-request-form-wrapper .top100-submit-button,
    .top100-request-form-wrapper .submit-btn {
        width: 100% !important;
        padding: 16px 24px !important;
        font-size: 18px !important;
    }
}
