*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:Arial,Helvetica,sans-serif;background:linear-gradient(135deg,#071321,#0b1e32);color:white}.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{min-height:100vh;padding:25px 16px;background:rgba(5,16,29,.92);border-right:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:12px;padding:0 8px 25px;border-bottom:1px solid rgba(255,255,255,.07)}.logo-icon{width:42px;height:42px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}.logo-icon img{width:100%;height:100%;object-fit:cover;display:block}.logo-text{display:flex;flex-direction:column;gap:3px}.logo-text strong{font-size:16px}.logo-text span{color:#73879d;font-size:11px}.menu{margin-top:25px;display:flex;flex-direction:column;gap:7px}.menu-item{width:100%;min-height:48px;padding:0 14px;border-radius:11px;display:flex;align-items:center;gap:13px;color:#91a5b9;text-decoration:none;font-size:14px;font-weight:600;border:1px solid transparent;transition:.2s}.menu-item:hover{color:white;background:rgba(255,255,255,.06);transform:translateX(2px)}.menu-item.ativo{color:#8ed8ff;background:rgba(39,153,222,.12);border-color:rgba(75,177,239,.15)}.menu-icon{width:24px;flex-shrink:0;text-align:center;font-size:18px}.sidebar-footer{margin-top:auto;padding:18px 10px 5px;color:#71859a;font-size:11px;display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;box-shadow:0 0 10px rgba(46,204,113,.6)}.conteudo{min-width:0;padding:35px 45px 60px}.topbar{max-width:1200px;margin:0 auto 35px;display:flex;justify-content:space-between;align-items:center}.pagina-label,.painel-label{color:#559bc7;font-size:10px;font-weight:bold;letter-spacing:1.8px}.topbar h1{margin:5px 0 0;font-size:32px}.relogio{padding:11px 16px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);color:#a9bdd0;font-size:13px;font-variant-numeric:tabular-nums}.vasco-container{max-width:1200px;margin:auto;display:flex;flex-direction:column;gap:20px}.equipa-card,.painel-card,.resumo-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.075)}.equipa-card{padding:25px 28px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,rgba(39,153,222,.1),rgba(255,255,255,.035));border-color:rgba(83,188,255,.13)}.equipa-identidade{display:flex;align-items:center;gap:18px}.equipa-icon{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(39,153,222,.13);border:1px solid rgba(83,188,255,.16);font-size:29px}.equipa-card h2{margin:4px 0 5px;font-size:22px}.equipa-card p{margin:0;color:#8195aa;font-size:13px}.liga-estado{padding:9px 13px;border-radius:999px;color:#a9bdd0;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);font-size:11px;font-weight:bold;white-space:nowrap}.liga-estado.pre{color:#f0c66e;background:rgba(240,198,110,.08);border-color:rgba(240,198,110,.16)}.liga-estado.ativo{color:#46d984;background:rgba(70,217,132,.08);border-color:rgba(70,217,132,.16)}.resumo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.resumo-card{padding:21px;border-radius:16px;display:flex;flex-direction:column;gap:7px}.resumo-card span{color:#8195aa;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.8px}.resumo-card strong{font-size:27px}.resumo-card small{color:#60778e;font-size:11px}.painel-card{padding:25px;border-radius:18px}.painel-topo{margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.painel-topo h2{margin:4px 0 0;font-size:21px}.painel-topo button{padding:9px 13px;border-radius:9px;color:#8ed8ff;background:rgba(39,153,222,.1);border:1px solid rgba(75,177,239,.15);font:inherit;font-size:12px;font-weight:bold;cursor:pointer}.jogos-lista{display:flex;flex-direction:column;gap:11px}.jogo-card{padding:16px 18px;border-radius:14px;display:grid;grid-template-columns:95px minmax(0,1fr) 110px;align-items:center;gap:17px;background:rgba(255,255,255,.026);border:1px solid rgba(255,255,255,.065)}.jogo-meta{display:flex;flex-direction:column;gap:5px}.jogo-jornada{color:#8ed8ff;font-size:10px;font-weight:bold}.jogo-data{color:#748ba2;font-size:11px}.jogo-equipas{min-width:0;display:flex;align-items:center;justify-content:center;gap:11px}.nome-equipa{min-width:0;flex:1;color:#aebfd0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nome-equipa:first-child{text-align:right}.nome-equipa.vasco{color:white;font-weight:bold}.vs{color:#536b82;font-size:11px}.jogo-lado{display:flex;align-items:center;justify-content:flex-end;gap:8px}.local{padding:5px 8px;border-radius:7px;color:#86a0b7;background:rgba(255,255,255,.04);font-size:10px;font-weight:bold}.hora,.resultado{min-width:42px;text-align:right;color:#d8e5ef;font-size:13px;font-weight:bold}.resultado{color:#8ed8ff}.mensagem{padding:22px!important;text-align:center!important;color:#748ba2!important}.classificacao-nota{color:#71879d;font-size:11px}.tabela-wrapper{width:100%;overflow-x:auto}table{width:100%;min-width:720px;border-collapse:collapse;font-size:12px}th{padding:10px 9px;color:#647b91;font-size:10px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.075)}td{padding:13px 9px;color:#99adbf;text-align:center;border-bottom:1px solid rgba(255,255,255,.05)}.equipa-col{text-align:left}tr.vasco-row td{color:#ccecff;background:rgba(39,153,222,.075)}tr.vasco-row .equipa-col,tr.vasco-row td:last-child{color:white;font-weight:bold}@media(max-width:1000px){.resumo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.app{grid-template-columns:72px 1fr}.sidebar{padding:20px 10px}.logo{justify-content:center;padding:0 0 20px}.logo-text,.menu-text,.sidebar-footer span{display:none}.menu-item{padding:0;justify-content:center}.menu-icon{width:auto}.sidebar-footer{justify-content:center}.conteudo{padding:25px 18px 40px}.topbar h1{font-size:25px}.equipa-card{align-items:flex-start;flex-direction:column}.jogo-card{grid-template-columns:1fr;gap:12px}.jogo-meta{flex-direction:row;justify-content:space-between}.jogo-lado{justify-content:space-between}}@media(max-width:500px){.topbar{align-items:flex-start;gap:12px}.relogio{padding:9px 10px;font-size:11px}.topbar h1{font-size:21px}.resumo-grid{grid-template-columns:1fr 1fr;gap:10px}.resumo-card{padding:16px}.painel-card{padding:18px}.equipa-card{padding:20px}.nome-equipa{font-size:12px}}


/* =========================
   FILTROS DOS JOGOS
========================= */

.filtros-jogos {
    margin:
        -4px 0 18px;

    display: flex;

    flex-wrap: wrap;

    gap: 8px;
}

.filtro-jogo {
    padding:
        8px 13px;

    border-radius: 9px;

    color: #8399ad;

    background:
        rgba(
            255,
            255,
            255,
            0.03
        );

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.07
        );

    font: inherit;

    font-size: 11px;

    font-weight: bold;

    cursor: pointer;

    transition:
        background 0.2s,
        color 0.2s,
        border-color 0.2s;
}

.filtro-jogo:hover {
    color: white;

    background:
        rgba(
            255,
            255,
            255,
            0.055
        );
}

.filtro-jogo.ativo {
    color: #8ed8ff;

    background:
        rgba(
            39,
            153,
            222,
            0.12
        );

    border-color:
        rgba(
            75,
            177,
            239,
            0.18
        );
}

.jogo-competicao {
    margin-top: 1px;

    color: #60788e;

    font-size: 10px;

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;
}

.jogo-card.taca {
    border-color:
        rgba(
            240,
            198,
            110,
            0.12
        );
}

.jogo-card.taca .jogo-jornada {
    color: #f0c66e;
}

.jogo-card.taca .local {
    color: #e6c982;

    background:
        rgba(
            240,
            198,
            110,
            0.07
        );
}

@media (max-width: 500px) {

    .filtros-jogos {
        gap: 6px;
    }

    .filtro-jogo {
        flex: 1;

        min-width: 75px;
    }
}


/* =========================
   RESULTADO / ESTADO DO JOGO
========================= */

.jogo-centro-resultado {
    flex-shrink: 0;
    min-width: 78px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 4px;
}

.placar {
    color: #eaf6ff;

    font-size: 14px;
    font-weight: bold;

    line-height: 1;

    font-variant-numeric:
        tabular-nums;
}

.estado-jogo {
    padding:
        3px 7px;

    border-radius: 999px;

    font-size: 9px;
    font-weight: bold;

    line-height: 1;

    white-space: nowrap;
}

.estado-jogo.vitoria {
    color: #46d984;

    background:
        rgba(
            70,
            217,
            132,
            0.10
        );

    border:
        1px solid
        rgba(
            70,
            217,
            132,
            0.18
        );
}

.estado-jogo.derrota {
    color: #ef7272;

    background:
        rgba(
            239,
            114,
            114,
            0.10
        );

    border:
        1px solid
        rgba(
            239,
            114,
            114,
            0.18
        );
}

.estado-jogo.empate {
    color: #f0c66e;

    background:
        rgba(
            240,
            198,
            110,
            0.10
        );

    border:
        1px solid
        rgba(
            240,
            198,
            110,
            0.18
        );
}

@media (max-width: 500px) {

    .jogo-centro-resultado {
        min-width: 64px;
    }

    .placar {
        font-size: 13px;
    }

    .estado-jogo {
        font-size: 8px;
    }
}
