* { box-sizing: border-box; }

:root {
    --glass: rgba(255, 255, 255, 0.06);
    --glass-border: rgba(255, 255, 255, 0.14);
    --text: #f2f2f7;
    --text-dim: rgba(242, 242, 247, 0.65);
}

html { scroll-behavior: smooth; }

body {
    margin: 0;
    min-height: 100vh;
    font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    background: radial-gradient(circle at 15% 20%, #3a2b7c 0%, transparent 45%),
                radial-gradient(circle at 85% 15%, #7c2b6b 0%, transparent 40%),
                radial-gradient(circle at 50% 90%, #1a3f6b 0%, transparent 45%),
                linear-gradient(135deg, #0f0c29, #24243e 50%, #302b63);
    background-attachment: fixed;
    color: var(--text);
    padding: 40px 16px 60px;
}

.topo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: 30px;
    text-align: center;
}

h1 { margin: 0; font-size: 28px; font-weight: 800; }

.btn-criar {
    display: inline-block;
    padding: 11px 22px;
    border-radius: 999px;
    background: linear-gradient(90deg, #7367f0, #d63384);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    font-size: 14px;
}

.btn-criar:hover { filter: brightness(1.1); }

.msg-sucesso {
    max-width: 900px;
    margin: 0 auto 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: rgba(29, 209, 161, 0.15);
    border: 1px solid rgba(29, 209, 161, 0.4);
    color: #c9ffe1;
    font-size: 14px;
    text-align: center;
}

.secao { max-width: 900px; margin: 0 auto 40px; }

.secao h2 { font-size: 17px; font-weight: 800; margin-bottom: 14px; }

.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }

.card {
    background: var(--glass);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(12px);
    border-radius: 16px;
    padding: 20px;
}

.card h3 { margin: 0 0 6px; font-size: 16px; }
.card .premio { color: var(--text-dim); font-size: 13.5px; margin-bottom: 12px; }

.card .linha { display: flex; justify-content: space-between; font-size: 13px; color: var(--text-dim); margin-bottom: 4px; }
.card .linha strong { color: var(--text); }

.card a.btn-participar, .card a.btn-gerenciar {
    display: block;
    text-align: center;
    margin-top: 14px;
    padding: 10px;
    border-radius: 10px;
    background: linear-gradient(135deg, #34d399, #0f8f5f);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    font-size: 13.5px;
}

.card a.btn-gerenciar { background: linear-gradient(135deg, #7367f0, #4b3fb0); }

.status-tag {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 10px;
}

.status-aberta { background: rgba(29, 209, 161, 0.2); color: #7cffc4; }
.status-encerrada { background: rgba(214, 158, 51, 0.2); color: #ffe7b8; }
.status-sorteada { background: rgba(115, 103, 240, 0.25); color: #cabfff; }

.vazio { text-align: center; color: var(--text-dim); font-size: 14px; padding: 20px; }

.voltar {
    display: block;
    text-align: center;
    margin-top: 10px;
    color: var(--text-dim);
    font-size: 13px;
    text-decoration: none;
}

.voltar:hover { color: var(--text); }

/* ===== Hero / landing ===== */
.hero {
    max-width: 720px;
    margin: 0 auto 50px;
    text-align: center;
}

.hero-topo {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    font-size: 12.5px;
}

.hero-topo a { color: var(--text-dim); text-decoration: none; }
.hero-topo a:hover { color: var(--text); }

.identidade-usuario { display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--text-dim); text-align: center; margin-bottom: 4px; }
.identidade-usuario strong { color: var(--text); }
.identidade-topo { display: flex; align-items: center; gap: 14px; font-size: 13px; }
.identidade-usuario details { cursor: pointer; text-align: center; }
.identidade-usuario summary {
    list-style: none;
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
    background: linear-gradient(90deg, rgba(115, 103, 240, 0.3), rgba(214, 51, 132, 0.3));
    border: 1px solid rgba(115, 103, 240, 0.45);
    padding: 11px 22px;
    border-radius: 999px;
}
.identidade-usuario summary:hover { background: linear-gradient(90deg, rgba(115, 103, 240, 0.45), rgba(214, 51, 132, 0.45)); }
.identidade-usuario summary::-webkit-details-marker { display: none; }
.identidade-usuario summary::after { content: ' ▾'; }
.identidade-usuario details[open] summary::after { content: ' ▴'; }
.identidade-usuario .lista-participacoes {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 340px;
}
.identidade-usuario .lista-participacoes a {
    display: block;
    color: var(--text);
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: 14px;
    padding: 14px 20px;
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.identidade-usuario .lista-participacoes a:hover {
    background: rgba(115, 103, 240, 0.22);
    border-color: rgba(115, 103, 240, 0.5);
    transform: translateY(-2px);
}
.identidade-usuario .vazio-participacoes { margin: 10px 0 0; font-size: 13px; }
.identidade-usuario .link-sair { color: var(--text-dim); text-decoration: none; white-space: nowrap; }
.identidade-usuario .link-sair:hover { color: var(--text); }

.hero-topo .btn-conta {
    padding: 7px 16px;
    border-radius: 999px;
    border: 1px solid var(--glass-border);
    background: rgba(255, 255, 255, 0.06);
    font-weight: 700;
}

.hero-topo .btn-conta:hover { background: rgba(255, 255, 255, 0.12); color: var(--text); }

.hero-topo .btn-conta-destaque {
    background: linear-gradient(90deg, #7367f0, #d63384);
    border-color: transparent;
    color: #fff;
}

.hero-topo .btn-conta-destaque:hover { filter: brightness(1.1); color: #fff; }

.hero h1 { font-size: 32px; font-weight: 800; margin: 0 0 14px; line-height: 1.25; }
.hero h1 span { background: linear-gradient(90deg, #7367f0, #d63384); -webkit-background-clip: text; background-clip: text; color: transparent; }

.hero p.subtitulo { color: var(--text-dim); font-size: 15px; line-height: 1.6; max-width: 560px; margin: 0 auto 26px; }

.hero-ctas { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

.btn-primario, .btn-secundario {
    display: inline-block;
    padding: 13px 24px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 14.5px;
    text-decoration: none;
}

.btn-primario { background: linear-gradient(90deg, #7367f0, #d63384); color: #fff; }
.btn-primario:hover { filter: brightness(1.1); }

.btn-secundario { background: rgba(255, 255, 255, 0.08); border: 1px solid var(--glass-border); color: var(--text); }
.btn-secundario:hover { background: rgba(255, 255, 255, 0.14); }

.secao-titulo { text-align: center; font-size: 22px; font-weight: 800; margin: 0 0 8px; }
.secao-subtitulo { text-align: center; color: var(--text-dim); font-size: 14px; margin: 0 0 28px; }

.recursos-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    max-width: 1000px;
    margin: 0 auto 56px;
}

.recurso-card {
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    padding: 22px 18px;
    backdrop-filter: blur(10px);
}

.recurso-icone {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    margin-bottom: 12px;
    background: rgba(115, 103, 240, 0.18);
}

.recurso-card h3 { font-size: 14.5px; font-weight: 800; margin: 0 0 6px; }
.recurso-card p { font-size: 12.5px; color: var(--text-dim); line-height: 1.5; margin: 0; }

.passos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    max-width: 820px;
    margin: 0 auto 56px;
}

.passo { text-align: center; padding: 0 8px; }

.passo-numero {
    width: 36px;
    height: 36px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: linear-gradient(135deg, #7367f0, #d63384);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 15px;
}

.passo h3 { font-size: 14px; font-weight: 800; margin: 0 0 5px; }
.passo p { font-size: 12.5px; color: var(--text-dim); line-height: 1.5; margin: 0; }

@media (max-width: 900px) {
    .recursos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .passos { grid-template-columns: 1fr; gap: 26px; }
}

@media (max-width: 600px) {
    .recursos-grid { grid-template-columns: 1fr; }
    .hero h1 { font-size: 26px; }
}
