/*!
 * ShowDeBola — site.css
 * Tema Premiada.bet (escuro)
 */

/* ── RESET / BASE ── */
html, body { min-height: 100%; }

html {
    background-color: #040109;
    background-image: linear-gradient(180deg, #220439 -60%, #040109 60%);
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}

body { background: transparent; }

/* ── APP CONTAINER: fullwidth ── */
html .app-container,
html:not(.responsive) .app-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

.app {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.app .app-header { display: none !important; }
.app .app-footer { display: none !important; }
.app .app-main   { background-color: transparent !important; padding: 0 !important; }

/* ── TIPOGRAFIA ── */
.roboto,
.page-aposta .campeonatos ul li a,
#pg-aposta .table.table-jogos,
.table-aposta {
    font-family: 'Ubuntu Sans', 'Roboto', sans-serif;
}

/* ── SWEETALERT ── */
.swal-text   { text-align: center; }
.swal-footer { text-align: center; }

/* ── PAGE TITLE ── */
.page-title {
    background-color: #130626 !important;
    margin: 0;
    padding: 12px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.page-title .title {
    line-height: 1.4;
    font-size: 16px;
    text-transform: uppercase;
    margin: 0;
    color: #fff !important;
}

.page-subtitle {
    background-color: #1a0930;
    line-height: 30px;
    font-size: 15px;
    padding: 5px 15px;
    text-transform: uppercase;
    margin: 0;
    color: rgba(255,255,255,0.7);
}

/* ── CAMPEONATOS SIDEBAR (desktop) ── */
.page-aposta .campeonatos {
    background-color: #130626;
    width: 190px;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 8px;
    overflow: hidden;
}
.page-aposta .campeonatos .title {
    text-align: center;
    margin: 0;
    color: #17C964;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 700;
    background-color: rgba(23,201,100,0.1);
    line-height: 40px;
    border-bottom: 1px solid rgba(23,201,100,0.2);
}
.page-aposta .campeonatos ul,
.page-aposta .campeonatos ul li {
    display: block;
    margin: 0;
    padding: 0;
}
.page-aposta .campeonatos ul li {
    padding: 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.page-aposta .campeonatos ul li.pais {
    background-color: rgba(255,255,255,0.03);
}
.page-aposta .campeonatos ul li a {
    display: block;
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    line-height: 1.4;
    padding: 8px 14px;
    text-decoration: none;
    transition: all .15s;
}
.page-aposta .campeonatos ul li a:hover { color: #fff; background: rgba(255,255,255,0.04); }
.page-aposta .campeonatos ul li a.active {
    color: #17C964;
    background: rgba(23,201,100,0.1);
    border-left: 2px solid #17C964;
}
.page-aposta .campeonatos .form-control {
    border: none;
    background-color: rgba(255,255,255,0.1);
    color: #fff;
}

/* ── BILHETE DESKTOP ── */
.page-aposta .bilhete {
    width: 260px;
    background-color: #130626;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 8px;
}
.page-aposta .bilhete .title {
    margin: 0;
    background-color: rgba(255,255,255,0.03);
    font-size: 14px;
    text-transform: uppercase;
    padding: 0 15px;
    line-height: 45px;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

/* ── LISTA DE JOGOS ── */
.page-aposta .lista-jogos { background-color: transparent; }

#pg-aposta .table.table-jogos { font-size: 11px; line-height: normal; }
#pg-aposta .table.table-jogos:not(:last-child) { margin: 0 0 20px 0; }
#pg-aposta .table.table-jogos tr.campeonato { background-color: rgba(255,255,255,0.05); font-size: 15px; }
#pg-aposta .table.table-jogos tr.campeonato a { color: #fff; }
#pg-aposta .table.table-jogos th,
#pg-aposta .table.table-jogos td { vertical-align: middle; padding: 4px 5px; }
#pg-aposta .table.table-jogos thead tr th { border: none; }
#pg-aposta .table.table-jogos thead tr.tr-pais { background-color: rgba(23,201,100,0.15); color: #fff; }
#pg-aposta .table.table-jogos thead tr.tr-pais th { font-size: 16px; font-weight: 600; padding: 8px 10px; }
#pg-aposta .table.table-jogos thead tr.tr-pais img { height: 18px; }
#pg-aposta .table.table-jogos thead .th-cotacao { font-size: 11px; width: 10px; text-transform: uppercase; text-align: center; }
#pg-aposta .table.table-jogos tbody { background-color: transparent; }
#pg-aposta .table.table-jogos tbody tr td:not(:first-child) { text-align: center; }

/* ── BOTÃO COTAÇÃO ── */
#pg-aposta .btn-cotacao {
    display: inline-block;
    text-decoration: none;
    text-align: center;
    width: 38px;
    font-size: 11px;
    background-color: #1c0835;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 6px;
    cursor: pointer;
    color: #fff;
    line-height: 30px;
    transition: all .15s;
}
#pg-aposta .btn-cotacao:hover { background-color: rgba(23,201,100,0.15); border-color: rgba(23,201,100,0.4); color: #17C964; }
#pg-aposta .btn-cotacao.outras { color: #000; background-color: #17C964; border-color: #17C964; }
#pg-aposta .btn-cotacao.active { color: #000; background-color: #17C964; border-color: #17C964; }
#pg-aposta #modal-cotacoes .btn-cotacao { font-size: 14px; line-height: normal; width: 60px !important; }

/* ── TABELAS GERAIS ── */
.card .card-footer:empty,
.card .card-body:empty,
.card .card-header:empty { display: none; }
.table td, .table th { vertical-align: middle; }
.table.table-minified { font-family: 'Ubuntu Sans', 'Open Sans', sans-serif; }
.table.table-minified thead { font-size: 14px; }
.table.table-minified tbody { font-size: 12px; }
.table-aposta { font-size: 12px; }
.table-aposta td, .table-aposta th { padding: 5px; vertical-align: middle; }

/* ── HEADER MOBILE (original do sistema) ── */
.header-mobile {
    background-color: #0e0520;
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
    position: sticky;
    top: 0;
    width: 100%;
    left: 0;
    z-index: 999;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.header-mobile .row-aposta { background-color: #130626; border-bottom: 1px solid rgba(255,255,255,0.07); }
.header-mobile .row-aposta .btn span {
    background-color: rgba(255,255,255,0.1);
    color: #fff;
    border-radius: 50%;
    padding: 0 5px;
    font-size: 12px;
}
.header-mobile .btn-link { color: #17C964 !important; }

/* ── MENU MOBILE ── */
html .menu-mobile {
    position: fixed;
    z-index: 999;
    left: -270px;
    width: 270px;
    height: 100%;
    background-color: #130626;
    border-right: 1px solid rgba(255,255,255,0.07);
    top: 0;
    transition: left 0.3s ease-in-out;
}
html .menu-mobile .header {
    line-height: 55px;
    padding: 0 15px;
    font-size: 18px;
    background-color: rgba(255,255,255,0.03);
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
html .menu-mobile ul,
html .menu-mobile li { display: block; padding: 0; margin: 0; }
html .menu-mobile li a {
    display: block;
    margin: 0;
    padding: 0 15px;
    line-height: 44px;
    color: rgba(255,255,255,0.7);
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    font-size: 13px;
    transition: all .15s;
}
html .menu-mobile li a:hover { color: #17C964; background: rgba(23,201,100,0.07); }
html.show-menu .menu-mobile { left: 0; }

/* ── COMUNICADOS ── */
.comunicados .comunicado { color: #fff; }
.comunicados .comunicado .header { background-color: #1a0930; line-height: 50px; border-bottom: 1px solid rgba(255,255,255,0.07); }
.comunicados .comunicado .header .title { font-weight: normal; text-transform: uppercase; font-size: 18px; }
.comunicados .comunicado .header .hora { font-style: italic; color: rgba(255,255,255,0.6); }
.comunicados .comunicado .mensagem { color: rgba(255,255,255,0.85); }
.comunicados .comunicado .mensagem p:last-child { margin-bottom: 0; }

/* ── OPCOES RESPONSIVO ── */
.opcoes-responsivo,
.opcoes-responsivo li { margin: 0; padding: 0; display: block; }
.opcoes-responsivo li {
    border-radius: 8px;
    background: #1c0835;
    border: 1px solid rgba(255,255,255,0.07);
    padding: 10px 14px;
    color: #fff;
    display: block;
    margin-bottom: 10px;
}
.opcoes-responsivo li label {
    color: rgba(255,255,255,0.5);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    display: block;
    margin-bottom: 6px;
}
.opcoes-responsivo li a { text-decoration: none; color: inherit; }
.opcoes-responsivo li a.active { color: #17C964; }

/* ══════════════════════════════════════════════
   MOBILE — @media (max-width: 768px)
   ══════════════════════════════════════════════ */
@media (max-width: 768px) {

    /* Container fullwidth */
    html .app-container,
    html:not(.responsive) .app-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }

    /* Campeonatos: some no mobile */
    .responsive .page-aposta { width: auto; }
    .responsive .page-aposta .campeonatos { display: none !important; }

    /* Bilhete: fullscreen drawer */
    .responsive .page-aposta .bilhete {
        width: 100%;
        overflow: auto;
        position: fixed;
        top: 100%;
        left: 0;
        z-index: 999;
        height: 100vh;
        border-radius: 0 !important;
        transition: top 0.3s ease-in-out;
    }
    .responsive .page-aposta .bilhete.show { top: 0; }
    .responsive .page-aposta .bilhete header { position: sticky; top: 0; width: 100%; }
    .responsive .page-aposta .bilhete header .title {
        background-color: #1a0930;
        border-radius: 0 !important;
        color: #fff;
    }
    .responsive .page-aposta .bilhete header .bilhete-close {
        position: absolute;
        top: 0;
        padding: 6px 0;
        width: 27px;
        font-size: 20px;
        right: 0;
        color: #fff;
    }

    /* Linha de jogo: data | times | odds SEM corte */
    #pg-aposta .container-fluid {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    #pg-aposta .col {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Camp header */
    .pbd-camp-block { overflow: visible !important; }
    .pbd-camp-header { overflow: visible !important; padding: 6px 6px !important; }

    /* Row do jogo */
    .pbd-jogo-row {
        display: flex !important;
        align-items: center !important;
        overflow: visible !important;
        min-height: 54px !important;
        width: 100% !important;
    }

    /* DATA E HORA — NUNCA SOME */
    .pbd-jogo-datetime {
        width: 50px !important;
        min-width: 50px !important;
        max-width: 50px !important;
        flex: 0 0 50px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 4px 2px !important;
        border-right: 1px solid rgba(255,255,255,0.1) !important;
        min-height: 54px !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }
    .pbd-jogo-date {
        font-size: 10px !important;
        color: rgba(255,255,255,0.85) !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    .pbd-jogo-time {
        font-size: 12px !important;
        color: #ffffff !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* Times */
    .pbd-jogo-teams {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        padding: 4px 5px !important;
    }
    .pbd-team { display: flex; align-items: center; gap: 4px; }
    .pbd-team-logo { width: 14px !important; height: 14px !important; flex-shrink: 0 !important; }
    .pbd-team-logo img { width: 14px !important; height: 14px !important; object-fit: contain !important; }
    .pbd-team-name {
        font-size: 11px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        flex: 1 !important;
        min-width: 0 !important;
    }

    /* Odds */
    .pbd-jogo-odds {
        display: flex !important;
        align-items: center !important;
        gap: 2px !important;
        padding: 4px 3px !important;
        flex: 0 0 auto !important;
        flex-shrink: 0 !important;
    }
    .pbd-odd {
        width: 40px !important;
        height: 32px !important;
        font-size: 11px !important;
        border-radius: 5px !important;
        flex-shrink: 0 !important;
    }
    .pbd-odd--mais {
        width: 24px !important;
        font-size: 9px !important;
        flex-shrink: 0 !important;
    }
    .pbd-camp-odds-labels span {
        width: 40px !important;
        font-size: 8px !important;
    }
}
