body { background: var(--bg-app); }
.main-content { padding-bottom: 0px; }
.container { max-width: 600px; margin: 0 auto; padding: 20px; }

/* RANKING CSS */
.ranking-list { background: white; border-radius: 25px; overflow: hidden; border: 2px solid var(--border); margin-bottom: 30px;}
.ranking-item { padding: 12px 15px; display: flex; align-items: center; border-bottom: 2px solid var(--border); transition: background 0.2s; }
.ranking-item:last-child { border-bottom: none; }
.ranking-item.is-me { background: #e6f9fa; }
.rank-number { width: 20px; font-weight: 900; font-size: 1rem; color: var(--text-light); text-align: center; margin-right: 10px; }
.rank-1 .rank-number { color: #FFD700; }
.rank-2 .rank-number { color: #C0C0C0; }
.rank-3 .rank-number { color: #CD7F32; }
.user-avatar { width: 30px; height: 30px; border-radius: 12px; background: var(--bg-app); display: flex; align-items: center; justify-content: center; margin-right: 10px; font-size: 1rem; position: relative; }
.is-premium .user-avatar { background: #fff5d1; color: var(--yellow); border: 2px solid var(--yellow); }
.user-info { flex-grow: 1; }
.user-name { display: block; font-weight: 800; color: var(--text); font-size: 0.95rem; }
.user-meta { font-size: 0.7rem; color: #aaa; font-weight: 700; text-transform: uppercase; }
.user-score { text-align: right; font-weight: 900; color: var(--cyan); font-size: 1.1rem; }
.user-score span { display: block; font-size: 0.6rem; color: #999; text-transform: uppercase; }

.expand-btn { text-align: center; padding: 5px; font-weight: 900; color: var(--cyan); cursor: pointer; background: #f8fafc; font-size: 0.85rem;}
.expand-btn:hover { background: #f1f5f9; }
.rank-hidden { display: none !important; }
.btn-login-footer { display: block; text-align: center; padding: 14px; background: var(--cyan); color: white; font-weight: 900; text-decoration: none; }

/* ABAS DO RANKING E REPUTAÇÃO */
.tabs-ranking { display: flex; gap: 10px; margin-bottom: 10px; background: white; padding: 6px; border-radius: 16px; border: 2px solid var(--border); }
.tab-btn { flex: 1; padding: 10px; text-align: center; font-weight: 900; color: var(--text-light); border-radius: 20px; cursor: pointer; transition: 0.2s; font-size: 0.9rem; text-transform: uppercase;}
.tab-btn.active { background: var(--cyan); color: white; }
.user-stats-group { display: flex; align-items: center; flex-direction: row; justify-content: flex-end; gap: 10px; }
.user-score { text-align: right; font-weight: 900; color: var(--cyan); font-size: 1.1rem; line-height: 1.1; }
.user-score span { display: block; font-size: 0.6rem; color: #999; text-transform: uppercase; text-align: right; margin-top: 2px; }
.user-rep { text-align: right; font-weight: 900; color: #f59e0b; font-size: 1.1rem; line-height: 1.1; }
.user-rep span { display: block; font-size: 0.6rem; color: #999; text-transform: uppercase; text-align: right; margin-top: 2px; }
.user-rep i { font-size: 0.85rem; margin-right: 2px; }

/* FEED (GALERIA) CSS */
.feed-container { display: flex; flex-direction: column; gap: 20px; }
.feed-card { padding: 30px 0px 20px 0px; border-bottom: 2px solid var(--border); animation: fadeUp 0.4s ease forwards;}
@keyframes fadeUp { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }

.feed-author-name{
    position: absolute;
    top: -5px;
    color: var(--cyan);
    padding: 0px 16px;
    font-size: 0.9rem;
    font-weight: 900;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
 }
.feed-img { width: 100%; border-radius: 25px; object-fit: cover; max-height: 550px; margin-bottom: 6px; border: 2px solid var(--border); border-bottom: 6px solid var(--border); }
.feed-actions { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.feed-actions-left { display: flex; gap: 10px;}

.vote-btn { background: var(--border); border: none; padding: 10px 18px; border-radius: 12px; font-weight: 900; color: var(--text); cursor: pointer; transition: 0.2s; display: flex; align-items: center; gap: 8px; font-size: 0.95rem; font-family: inherit;}
.vote-btn.like.active { background: var(--green-shade); color: var(--bg-app); border: 1px solid var(--green-shade);}
.vote-btn.dislike.active { background: var(--red-shade); color: var(--bg-app); border: 1px solid var(--red-shade);}
.vote-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.vote-btn:not(:disabled):active { transform: scale(0.95); }

.loading-spinner { text-align: center; padding: 35px 20px 20px 20px; font-weight: 900; display: none; }

/* ==========================================
   BOTÃO FLUTUANTE (FAB) PARA ENVIAR ARTE
   ========================================== */
.fab-upload {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    background-color: var(--cyan);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    box-shadow: 0 4px 0px var(--cyan-shade);
    text-decoration: none;
    z-index: 9999;
    transition: all 0.2s ease;
}

.fab-upload:active {
    transform: scale(0.95);
    box-shadow: 0 0px 0px var(--cyan-shade);
}

@media (max-width: 768px) {
    .main-content { padding-bottom: 80px; }
    .fab-upload {
        bottom: 90px; 
        right: 10px;
        width: 55px;
        height: 55px;
    }
}
@media (min-width: 768px) {
    .sidebar{ width: auto!important; }
}