/* ====================================================================
 * painel.css — Painel inferior em abas
 * ==================================================================== */

.tc-painel {
    margin-top: 24px;
    background: #fff;
    border-radius: var(--tc-radius);
    box-shadow: var(--tc-sombra-card);
    overflow: hidden;
}

/* ============ Abas ============ */
.tc-abas-bar {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    background: #f8fafc;
    border-bottom: 2px solid var(--tc-cor-borda);
}
.tc-abas {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    background: #f8fafc;
    border-bottom: 2px solid var(--tc-cor-borda);
    overflow-x: auto;
}
.tc-abas-bar .tc-abas { background: transparent; border-bottom: 0; flex: 1 1 auto; }
.tc-abas-acoes {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    flex: 0 0 auto;
}
.tc-aba {
    border: 0;
    background: transparent;
    padding: 14px 20px;
    cursor: pointer;
    font-weight: 600;
    font-size: .95rem;
    color: var(--tc-cor-texto-fraco);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
}
.tc-aba:hover { color: var(--tc-cor-primaria); background: rgb(37 99 235 / 5%); }
.tc-aba:focus { outline: none; background: rgb(37 99 235 / 10%); }

.tc-aba.is-active {
    color: #ffffff;
    border-bottom-color: #000000;
    background: #c90070;
}

/* backup
.tc-aba.is-active {
    color: var(--tc-cor-primaria);
    border-bottom-color: var(--tc-cor-primaria);
    background: #fff;
}
*/
    
.tc-aba i { font-size: 1rem; }

/* ============ Painéis ============ */
.tc-panel { padding: 18px; }
.tc-panel.hidden { display: none; }

.tc-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--tc-cor-borda);
}
.tc-panel-titulo {
    font-size: 1.1rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.tc-panel-intervalo {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    font-size: .85rem;
}
.tc-intervalo-mini {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f8fafc;
    border: 1px solid var(--tc-cor-borda);
    border-radius: var(--tc-radius);
    padding: 4px 10px;
}
.tc-intervalo-display { font-weight: 600; color: var(--tc-cor-primaria); }

.tc-checkbox-sync {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    padding: 4px 10px;
    border-radius: var(--tc-radius);
    font-size: .85rem;
    color: #166534;
}

.tc-panel-body { min-height: 80px; }
.tc-empty { color: var(--tc-cor-texto-fraco); text-align: center; padding: 16px; }

/* ============ Mini-tabs (Analisado / Completo, Duplas / Trincas / ...) ============ */
.tc-mini-tabs {
    display: inline-flex;
    background: #f3f4f6;
    border-radius: var(--tc-radius);
    padding: 3px;
    gap: 2px;
    margin-bottom: 12px;
}
.tc-mini-tab {
    border: 0;
    background: transparent;
    padding: 6px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    font-size: .85rem;
    color: var(--tc-cor-texto-fraco);
    transition: background var(--tc-transicao), color var(--tc-transicao);
}
.tc-mini-tab:hover { color: var(--tc-cor-texto); }
.tc-mini-tab.is-active {
    background: #fff;
    color: var(--tc-cor-primaria);
    box-shadow: 0 1px 2px rgb(0 0 0 / 10%);
}

/* ============ Volante virtual — mais elegante ============ */
.tc-volante-header {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; flex-wrap: wrap;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--tc-cor-borda);
}
.tc-volante-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
#tc-volante-copiar { background: #0ea5e9; }
#tc-volante-colar  { background: #6366f1; }
#tc-volante-buscar-padrao { background: #0d9488; }
.tc-volante-concurso {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin: 0 0 12px; padding: 8px 12px;
    background: #f8fafc; border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius);
    font-size: .85rem;
}
.tc-volante-concurso label { font-weight: 600; color: var(--tc-cor-texto-fraco); }
.tc-volante-concurso input {
    width: 110px; padding: 6px 8px; text-align: center;
    border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius); font-size: .9rem;
}
.tc-volante-concurso input:focus { outline: none; border-color: var(--tc-cor-primaria); box-shadow: 0 0 0 3px rgb(37 99 235 / 18%); }
/* Combobox de concursos (sugestões flutuantes) */
.tc-concurso-combo { position: relative; }
.tc-concurso-sugestoes {
    position: absolute; top: calc(100% + 2px); left: 0; z-index: 200;
    min-width: 110px; max-height: 220px; overflow-y: auto;
    list-style: none; margin: 0; padding: 4px;
    background: #fff; border: 1px solid var(--tc-cor-borda);
    border-radius: var(--tc-radius); box-shadow: 0 8px 20px rgb(0 0 0 / 14%);
}
.tc-concurso-sugestoes[hidden] { display: none; }
.tc-concurso-sug-item {
    padding: 6px 10px; border-radius: 4px; cursor: pointer;
    font-size: .9rem; text-align: center; font-weight: 600;
}
.tc-concurso-sug-item:hover { background: #eff6ff; color: var(--tc-cor-primaria); }
#tc-concurso-prev, #tc-concurso-next { background: #475569; min-width: 32px; font-weight: 700; padding: 6px 10px; }
.tc-concurso-auto-lbl {
    background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412;
    padding: 4px 10px; border-radius: var(--tc-radius); font-size: .82rem;
}
.tc-concurso-auto-lbl input:checked + span { font-weight: 700; }
.tc-volante-titulo {
    font-size: 1rem; font-weight: 700;
    display: inline-flex; align-items: center; gap: 8px;
}
.tc-volante-titulo::before {
    content: '🎯';
    font-size: 1.2rem;
}
.tc-volante-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    max-width: 350px;
    margin: 0 auto;
    padding: 12px;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-radius: 14px;
    box-shadow: inset 0 1px 3px rgb(0 0 0 / 6%);
}
.tc-numero-btn {
    aspect-ratio: 1;
    display: grid; place-items: center;
    background: #fff;
    border: 2px solid #e2e8f0;
    border-radius: 10%;
    padding: 0;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--tc-cor-texto);
    cursor: pointer;
    transition: all .2s ease;
    box-shadow: 0 1px 2px rgb(0 0 0 / 8%), inset 0 -2px 0 rgb(0 0 0 / 4%);
    user-select: none;
}
.tc-numero-btn:hover {
    border-color: var(--tc-cor-primaria);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgb(37 99 235 / 20%);
}
.tc-numero-btn.selecionado {
    background: linear-gradient(135deg, #c90070, #c90070);
    color: #fff;
    border-color: #1c1c1c;
    box-shadow: 0 0px 3px rgb(37 99 235 / 50%), inset 0 1px 0 rgb(255 255 255 / 30%);
    transform: scale(1.08);
}
.tc-numero-btn.selecionado:hover {
    transform: scale(1.12) translateY(-2px);
}
.tc-numero-btn:focus {
    outline: 1px solid rgb(37 99 235 / 40%);
    outline-offset: 1px;
}
.tc-volante-help {
    margin-top: 14px;
    font-size: .8rem;
    color: var(--tc-cor-texto-fraco);
    text-align: center;
    font-style: italic;
}

/* ====== Volante: contadores de linha/coluna (board) ====== */
.tc-volante-grid--board {
    --vol-cnt: 26px;
    max-width: 384px;
    gap: 6px;
}
.tc-vol-counter {
    display: grid;
    place-items: center;
    font-size: .82rem;
    font-weight: 800;
    border-radius: 7px;
    background: #eef2f7;
    color: #64748b;
    min-width: var(--vol-cnt);
    min-height: var(--vol-cnt);
    align-self: stretch;
    user-select: none;
    transition: background .15s ease, color .15s ease;
}
.tc-vol-counter.is-zero        { opacity: .4; }
.tc-vol-counter.filter-below   { background: #ff4040; color: #fff;     opacity: 1; }
.tc-vol-counter.filter-average { background: #ffd84d; color: #4a3a00;  opacity: 1; }
.tc-vol-counter.filter-above   { background: #39ff14; color: #06310a;  opacity: 1; }

/* ====== Volante: totais (selecionadas / não selecionadas) ====== */
.tc-vol-totais {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}
.tc-vol-total {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .82rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 999px;
    background: #f1f5f9;
    color: var(--tc-cor-texto-fraco);
}
.tc-vol-total-num { font-weight: 800; font-size: .95rem; }
.tc-vol-total-sel { background: #eafaf0; color: #166534; }
.tc-vol-total-sel i { color: #16a34a; }

/* ====== Volante: tabela por posição (3x5) ====== */
.tc-volante-area--lado { display: flex; gap: 18px; align-items: flex-start; justify-content: center; flex-wrap: wrap; }
.tc-volante-area--lado .tc-volante-grid { margin: 0; }
.tc-volante-area--lugar #tabela-empilhada { display: none; }

.tc-vol-posicao {
    max-width: 360px;
    margin: 14px auto 0;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--tc-cor-borda);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgb(0 0 0 / 6%);
}
.tc-volante-area--lado .tc-vol-posicao { margin: 0; }
.tc-vol-posicao-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.tc-vol-posicao-titulo { font-size: .78rem; font-weight: 700; color: var(--tc-cor-texto-fraco); display: inline-flex; align-items: center; gap: 6px; }
.tc-vol-posicao-x { border: 0; background: transparent; font-size: 1.25rem; line-height: 1; cursor: pointer; color: #94a3b8; padding: 0 6px; border-radius: 6px; }
.tc-vol-posicao-x:hover { background: #f1f5f9; color: #475569; }
.tc-vol-posicao-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.tc-vol-pos-cell {
    display: flex; flex-direction: column; align-items: center; gap: 2px;
    padding: 6px 0; border-radius: 8px;
    background: linear-gradient(135deg, #f8fafc, #eef2f7);
    transition: opacity .15s ease;
}
.tc-vol-pos-rotulo { font-size: .6rem; font-weight: 700; color: #94a3b8; }
.tc-vol-pos-dez { font-size: 1.05rem; font-weight: 800; color: var(--tc-cor-texto); }
.tc-vol-posicao-aviso {
    display: none; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px;
    margin-top: 10px; font-size: .78rem; font-weight: 600; color: #b45309;
}
.tc-vol-posicao.is-visualizacao .tc-vol-posicao-grid { opacity: .35; filter: grayscale(.4); }
.tc-vol-posicao.is-visualizacao .tc-vol-posicao-aviso { display: flex; }

/* ============ Aba Filtros ============ */
.tc-filtros-info {
    font-size: .85rem;
    color: var(--tc-cor-texto-fraco);
    margin-bottom: 12px;
}
.tc-filtros-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}
.tc-filtro-item {
    display: grid;
    grid-template-columns: 60px 36px 1fr 50px;
    gap: 10px;
    align-items: center;
    padding: 8px 12px;
    background: #f8fafc;
    border-radius: var(--tc-radius);
    border-left: 3px solid var(--tc-cor-primaria);
    font-size: .9rem;
}
.tc-filtro-nome { font-weight: 700; }
.tc-filtro-valor { font-weight: 700; text-align: center; color: var(--tc-cor-primaria); }
.tc-filtro-pct { text-align: right; font-weight: 600; color: var(--tc-cor-texto-fraco); }
.tc-filtro-bar-wrap {
    background: var(--tc-cor-borda);
    height: 12px;
    border-radius: 999px;
    overflow: hidden;
}
.tc-filtro-barra {
    height: 100%;
    transition: width .3s ease;
    background: var(--tc-cor-primaria);
}
.tc-filtro-barra-20 { background: linear-gradient(90deg, #fca5a5, #ef4444); }
.tc-filtro-barra-50 { background: linear-gradient(90deg, #fcd34d, #f59e0b); }
.tc-filtro-barra-70 { background: linear-gradient(90deg, #6ee7b7, #10b981); }
.tc-filtro-barra-100 { background: linear-gradient(90deg, #34d399, #16a34a); }

/* ============ Pontuação ============ */
.tc-pontuacao-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px; flex-wrap: wrap; gap: 12px;
}
.tc-pontuacao-info { font-size: .85rem; color: var(--tc-cor-texto-fraco); }
.tc-pontuacao-table {
    width: 100%;
    border-collapse: collapse;
}
.tc-pontuacao-table th, .tc-pontuacao-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--tc-cor-borda);
}
.tc-pontuacao-table th {
    text-transform: uppercase;
    font-size: .7rem;
    color: var(--tc-cor-texto-fraco);
    font-weight: 700;
    letter-spacing: .04em;
}
.tc-pt-pontos { width: 80px; font-weight: 700; }
.tc-pt-ocorr  { width: 100px; text-align: center; }
.tc-pt-pct    { width: 60px; display: inline-block; text-align: right; }
.tc-pt-barra-wrap {
    background: var(--tc-cor-borda);
    height: 15px;
    border-radius: 999px;
    overflow: hidden;
    display: inline-block;
    width: calc(100% - 70px);
    vertical-align: middle;
    margin-right: 6px;
}
.tc-pt-barra { height: 100%; background: linear-gradient(90deg, #fbbf24, #16a34a); transition: width .3s ease; }

/* Botão "Detalhes" / lupa por faixa de pontuação */
.tc-pt-barra-cell { display: flex; align-items: center; gap: 8px; }
.tc-pt-barra-cell .tc-pt-barra-wrap { flex: 1 1 auto; width: auto; margin-right: 0; }
.tc-pt-barra-cell .tc-pt-pct { flex: 0 0 auto; width: 52px; }
.tc-pt-detalhes {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 5px;
    border: 1px solid var(--tc-cor-borda); background: #fff;
    color: var(--tc-cor-primaria); font-size: .76rem; font-weight: 600;
    padding: 3px 9px; border-radius: 999px; cursor: pointer; white-space: nowrap;
    transition: background .15s ease, color .15s ease;
}
.tc-pt-detalhes:hover { background: var(--tc-cor-primaria); color: #fff; border-color: var(--tc-cor-primaria); }
@media (max-width: 850px) {
    .tc-pt-detalhes-txt { display: none; }
    .tc-pt-detalhes { padding: 4px 7px; }
}

.tc-pt-alta  td { background: #f0fdf4; }
.tc-pt-media td { background: #fefce8; }
.tc-pt-baixa td { background: transparent; }
.tc-pt-zero  td { background: #f8fafc; color: var(--tc-cor-texto-fraco); }

/* Cabeçalhos ordenáveis */
.tc-pontuacao-table th.tc-sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.tc-pontuacao-table th.tc-sortable:hover { color: var(--tc-cor-primaria); }
.tc-pontuacao-table th .tc-sort-ico { font-size: .7em; opacity: .5; margin-left: 2px; }
.tc-pontuacao-table th.is-sorted { color: var(--tc-cor-primaria); }
.tc-pontuacao-table th.is-sorted .tc-sort-ico { opacity: 1; }

/* ============ Combinações ============ */
.tc-combinacoes-info {
    font-size: .85rem;
    color: var(--tc-cor-texto-fraco);
    margin-bottom: 10px;
}
.tc-combinacoes-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 8px;
}
.tc-combinacoes-item {
    background: #f8fafc;
    border: 1px solid var(--tc-cor-borda);
    border-radius: var(--tc-radius);
    padding: 10px 12px;
    cursor: pointer;
    transition: transform var(--tc-transicao), box-shadow var(--tc-transicao);
}
.tc-combinacoes-item { position: relative; }
.tc-combinacoes-item:hover {
    transform: translateY(-1px);
    box-shadow: var(--tc-sombra-card);
    background: #fff;
}
/* Feedback de seleção: combinação totalmente selecionada */
.tc-combinacoes-item.is-ativo {
    background: #eff6ff;
    border-color: var(--tc-cor-primaria);
    box-shadow: inset 0 0 0 1px var(--tc-cor-primaria);
}
.tc-combinacoes-check {
    position: absolute;
    top: 8px; right: 10px;
    color: var(--tc-cor-primaria);
    opacity: 0;
    transition: opacity var(--tc-transicao);
}
.tc-combinacoes-item.is-ativo .tc-combinacoes-check { opacity: 1; }
.tc-chip-dez.is-sel { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--tc-cor-primaria); }
.tc-combinacoes-dezenas {
    display: flex; gap: 6px; margin-bottom: 8px;
}
.tc-chip-dez {
    background: #c90070;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    font-weight: 700;
    font-size: .85rem;
    cursor: pointer;
    transition: transform var(--tc-transicao);
}
.tc-chip-dez:hover { transform: scale(1.1); }
.tc-chip-dez.is-pres { background: #16a34a; }
.tc-chip-dez.is-aus  { background: #dc2626; }
.tc-combinacoes-meta {
    display: flex; align-items: center; gap: 8px; font-size: .8rem;
}
.tc-combinacoes-bar {
    flex: 1;
    height: 6px;
    background: var(--tc-cor-borda);
    border-radius: 999px;
    overflow: hidden;
}
.tc-combinacoes-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--tc-cor-primaria), #7c3aed);
}
.tc-combinacoes-freq { color: var(--tc-cor-texto-fraco); font-weight: 600; }
.tc-combinacoes-pct  { font-weight: 700; color: var(--tc-cor-primaria); min-width: 48px; text-align: right; }

/* ============ Detecção ============ */
.tc-deteccao-info {
    font-size: .8rem;
    color: var(--tc-cor-texto-fraco);
    margin-bottom: 12px;
}
.tc-deteccao-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}
.tc-deteccao-card {
    background: #fff;
    border: 1px solid var(--tc-cor-borda);
    border-top: 3px solid var(--cat-cor, var(--tc-cor-primaria));
    border-radius: var(--tc-radius);
    box-shadow: var(--tc-sombra-card);
    overflow: hidden;
}
.tc-deteccao-card-header {
    background: linear-gradient(135deg, var(--cat-cor, var(--tc-cor-primaria)), #000000 80%);
    color: #fff;
    padding: 10px 12px;
    display: flex; align-items: center; gap: 8px;
    font-weight: 700;
}
.tc-deteccao-card-header h4 { margin: 0; font-size: .95rem; }
.tc-deteccao-card-body { padding: 10px 12px; min-height: 60px; }
.tc-deteccao-duplas {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 6px;
}
.tc-deteccao-dupla {
    display: flex; justify-content: space-between; align-items: center;
    background: #f8fafc;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: .85rem;
    cursor: pointer;
    transition: background var(--tc-transicao), box-shadow var(--tc-transicao);
}
.tc-deteccao-dupla:hover { background: #eef2ff; }
.tc-deteccao-dupla.is-ativo {
    background: #eff6ff;
    box-shadow: inset 0 0 0 1px var(--tc-cor-primaria);
}
.tc-deteccao-numeros { display: flex; gap: 4px; }
.tc-deteccao-meta { color: var(--tc-cor-texto-fraco); }
.tc-deteccao-dupla .tc-chip-dez.is-sel { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--tc-cor-primaria); }

/* Toolbar + avisos da Detecção */
.tc-deteccao-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 12px; flex-wrap: wrap;
}
.tc-deteccao-toolbar .tc-deteccao-info { margin-bottom: 0; }
.tc-deteccao-card-aviso {
    font-size: .75rem; padding: 6px 12px; line-height: 1.3;
}
.tc-deteccao-card-aviso.is-relaxado { background: #eff6ff; color: #1e3a8a; }
.tc-deteccao-card-aviso.is-curto    { background: #fef3c7; color: #92400e; }

/* ============ Padrões ============ */
.tc-padroes-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 12px; flex-wrap: wrap;
}
.tc-padroes-info { font-size: .85rem; color: var(--tc-cor-texto-fraco); }
.tc-padroes-legenda { display: flex; align-items: center; gap: 12px; font-size: .78rem; color: var(--tc-cor-texto-fraco); flex-wrap: wrap; }
.tc-leg-box { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-right: 3px; }
.tc-leg-pres { background: #86efac; }
.tc-leg-aus  { background: #f1f5f9; border: 1px solid var(--tc-cor-borda); }
.tc-padroes-dica { font-style: italic; }

.tc-padroes-layout { display: flex; gap: 12px; align-items: flex-start; }
.tc-padroes-grade-wrap { flex: 1 1 auto; overflow-x: auto; }
.tc-padroes-detalhe {
    flex: 0 0 250px; max-width: 250px;
    background: #f8fafc; border: 1px solid var(--tc-cor-borda);
    border-radius: var(--tc-radius); padding: 12px; align-self: stretch;
}

.tc-padroes-table { border-collapse: separate; border-spacing: 2px; font-size: .78rem; }
.tc-padroes-table th, .tc-padroes-table td { text-align: center; padding: 2px; }
.tc-padroes-conc { color: var(--tc-cor-texto-fraco); font-weight: 600; white-space: nowrap; padding: 0 6px !important; }
.tc-padroes-th {
    cursor: pointer; min-width: 1.7rem; border-radius: 4px;
    background: #f1f5f9; font-weight: 700; transition: background var(--tc-transicao);
}
.tc-padroes-th:hover { background: var(--tc-cor-primaria); color: #fff; }
.tc-padroes-cel {
    width: 1.7rem; height: 1.6rem; border-radius: 4px;
    background: #f1f5f9; color: transparent; font-weight: 600;
}
.tc-padroes-cel.is-pres { background: #86efac; color: #14532d; }
.tc-padroes-cel.tc-col-foco { outline: 2px solid var(--tc-cor-primaria); outline-offset: -2px; }
.tc-padroes-cel.is-aus.tc-col-foco { background: #fecaca; }
.tc-padroes-th.is-foco-head, .tc-padroes-foot.is-foco-head { outline: 2px solid var(--tc-cor-primaria); outline-offset: -2px; }
.tc-padroes-foot { font-weight: 700; color: var(--tc-cor-texto-fraco); border-radius: 4px; background: #f8fafc; }
.tc-padroes-foot.is-quente { background: #fee2e2; color: #b91c1c; }
.tc-padroes-foot.is-presente { background: #dcfce7; color: #166534; }

.tc-padroes-detalhe-vazio { text-align: center; color: var(--tc-cor-texto-fraco); padding: 20px 8px; }
.tc-padroes-detalhe-vazio i { font-size: 1.6rem; margin-bottom: 8px; opacity: .5; }
.tc-padroes-detalhe-head { display: flex; flex-direction: column; gap: 8px; align-items: center; margin-bottom: 12px; }
.tc-padroes-dezena-grande {
    display: grid; place-items: center; width: 48px; height: 48px;
    background: var(--tc-cor-primaria); color: #fff; border-radius: 10px;
    font-size: 1.4rem; font-weight: 800;
}
.tc-padroes-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.tc-padroes-stats div { background: #fff; border: 1px solid var(--tc-cor-borda); border-radius: 6px; padding: 6px; text-align: center; }
.tc-padroes-stats span { display: block; font-size: 1.1rem; font-weight: 800; color: var(--tc-cor-texto); }
.tc-padroes-stats small { font-size: .68rem; color: var(--tc-cor-texto-fraco); }
.tc-padroes-sub { margin: 14px 0 6px; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tc-cor-texto-fraco); }
.tc-padroes-tags { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 5px; }
.tc-padroes-tag { font-size: .8rem; padding: 5px 8px; border-radius: 6px; display: flex; align-items: center; gap: 6px; }
.tc-padroes-tag.is-presence { background: #dcfce7; color: #166534; }
.tc-padroes-tag.is-absence  { background: #fee2e2; color: #b91c1c; }

/* ============ Tab "Padrões" (tabela portada do PV) ============ */
.tc-padroes-toolbar2 {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 10px; flex-wrap: wrap;
}
.tc-padroes-info2 { font-size: .85rem; color: var(--tc-cor-texto-fraco); }
.tc-padroes-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* Barra de apontamentos (checkboxes ED/DE + destaque) */
.tc-padroes-apont-bar {
    display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap;
    margin-bottom: 10px; padding: 7px 12px;
    background: #f8fafc; border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius);
    font-size: .82rem;
}
.tc-apont-titulo { font-weight: 700; color: var(--tc-cor-texto-fraco); display: inline-flex; align-items: center; gap: 5px; }
.tc-apont-lbl-pres span { color: #15803d; font-weight: 600; }
.tc-apont-lbl-aus span  { color: #b91c1c; font-weight: 600; }
.tc-apont-destaque-lbl { margin-left: auto; padding-left: 10px; border-left: 1px solid var(--tc-cor-borda); }
/* Feedback: tipo de apontamento ATIVO (checkbox marcado) */
.tc-apont-lbl-pres input:checked + span { background: #dcfce7; color: #15803d; padding: 1px 7px; border-radius: 10px; box-shadow: inset 0 0 0 1px #16a34a; }
.tc-apont-lbl-aus  input:checked + span { background: #fee2e2; color: #b91c1c; padding: 1px 7px; border-radius: 10px; box-shadow: inset 0 0 0 1px #dc2626; }
.tc-apont-todos-lbl input:checked + span { background: #dbeafe; color: #1e3a8a; padding: 1px 7px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--tc-cor-primaria); }
/* Linhas da tabela de Padrões clicáveis + feedback da célula de apontamento exibida */
.pv-table tbody tr[data-dezena] { cursor: pointer; }
.pv-table td.is-apont-on {
    box-shadow: inset 0 0 0 2px var(--tc-cor-primaria);
    background: #eff6ff !important;
    border-radius: 3px;
}

/* Feedback de seleção de dupla na tab SuperDuplas */
.pv-table-duplas tbody tr[data-d1] { cursor: pointer; }
.pv-table-duplas tbody tr.is-dupla-sel td {
    box-shadow: inset 0 0 0 9999px rgb(37 99 235 / 14%);
}
.pv-table-duplas tbody tr.is-dupla-sel td:first-child {
    box-shadow: inset 4px 0 0 var(--tc-cor-primaria), inset 0 0 0 9999px rgb(37 99 235 / 14%);
}
/* Linha da dezena que está na projeção (feedback de integração) */
.pv-table tbody tr.pv-row-selecionada td { box-shadow: inset 0 0 0 9999px rgb(37 99 235 / 12%); }
.pv-table tbody tr.pv-row-selecionada .pv-td-dezena { outline: 2px solid var(--tc-cor-primaria); outline-offset: -2px; }
/* Modal de colunas */
.tc-padroes-colunas-body { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.tc-padroes-colgrupo { border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius); padding: 8px 10px; }
.tc-padroes-colgrupo legend { font-size: .75rem; font-weight: 700; text-transform: uppercase; color: var(--tc-cor-texto-fraco); padding: 0 4px; }
.tc-padroes-colgrupo .tc-form-row { display: flex; align-items: center; gap: 6px; font-size: .82rem; padding: 2px 0; }

@media (max-width: 640px) {
    .tc-volante-grid { grid-template-columns: repeat(5, 1fr); }
    .tc-aba { padding: 10px 14px; font-size: .85rem; }
    .tc-combinacoes-list { grid-template-columns: 1fr; }
    .tc-deteccao-grid    { grid-template-columns: 1fr; }
}

/* ====================================================================
 * CICLOS TRADICIONAIS (aba "Ciclos")
 * ==================================================================== */
.tc-ciclos-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; flex-wrap: wrap; margin-bottom: 10px;
}
.tc-ciclos-info { font-size: .85rem; color: var(--tc-cor-texto-fraco); }
.tc-ciclos-info strong { color: var(--tc-cor-texto); }
.tc-ciclos-modos { display: flex; gap: 4px; flex-wrap: wrap; }
.tc-ciclos-modo { background: #e5e7eb; color: #374151; }
.tc-ciclos-modo.is-active { background: var(--tc-cor-primaria); color: #fff; }

.tc-ciclos-intervalo {
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    padding: 8px 10px; margin-bottom: 10px;
    background: #f8fafc; border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius);
}
.tc-ciclos-janela {
    min-width: 92px; text-align: center; font-weight: 700;
    color: var(--tc-cor-primaria); padding: 4px 8px;
    background: #fff; border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius);
}
.tc-ciclos-sep { width: 1px; height: 22px; background: var(--tc-cor-borda); margin: 0 4px; }

.tc-ciclos-wrapper { overflow-x: auto; border: 1px solid var(--tc-cor-borda); border-radius: var(--tc-radius); }
.tc-ciclos-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.tc-ciclos-table thead th {
    position: sticky; top: 0; z-index: 1;
    background: #1f2937; color: #fff; padding: 8px 10px; text-align: center; white-space: nowrap;
}
.tc-ciclos-table tbody td { padding: 5px 8px; border-bottom: 1px solid var(--tc-cor-borda); text-align: center; vertical-align: middle; }
.tc-ciclos-table tbody tr:hover { background: #f1f5f9; }
.tc-ciclos-conc { cursor: pointer; color: var(--tc-cor-primaria); font-weight: 700; text-decoration: underline; }
.tc-ciclos-qtd  { font-weight: 700; }
.tc-ciclos-atual { color: var(--tc-cor-texto-fraco); }

.tc-ciclo-fechou { background: #ecfdf5; }
.tc-ciclo-fechou:hover { background: #d1fae5; }
.tc-ciclos-flag { color: #dc2626; font-weight: 800; font-size: .78rem; }
.tc-ciclos-fechou-txt { color: #16a34a; font-weight: 800; }

/* Dezenas dentro das células */
.tc-ciclos-dezenas { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; }
.tc-ciclos-dezenas.d25 { margin: 0 auto; }
.tc-ciclos-dezenas .dezena {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 5px;
    font-size: .72rem; font-weight: 700; box-sizing: border-box;
}
.tc-ciclos-dezenas .dezena-sorteada-filtro { background: #a7348b; color: #fff; border: 1px solid #8a2973; }
.tc-ciclos-dezenas .dezena-sorteada        { background: #e2e8f0; color: #ff0505; border: 1px solid #9b9b9b; }
.tc-ciclos-dezenas .dezena-filtro          { background: #dedede; color: #939393; border: 1px solid #bfbfbf; }
.tc-ciclos-dezenas .dezena-normal          { background: transparent; color: #999; border: 1px solid #eee; }
.tc-ciclos-dezenas .dezena-ausente         { background: #ff6b6b; color: #fff; border: 1px solid #e23b3b; }
.tc-ciclos-dezenas .dezena-ciclo-ausente   { background: #ff0000; color: #fff; box-shadow: 0 0 5px rgba(255,0,0,.5); }
.tc-ciclos-dezenas .dezena-sorteada-fraca  { background: #fff5b3; color: #181818; border: 1px solid #c9c597; opacity: .6; }

/* Destaque temporário ao clicar no concurso (tabela superior) */
.tc-ciclo-flash { animation: tc-ciclo-flash 1.6s ease; }
@keyframes tc-ciclo-flash {
    0%, 100% { background: transparent; }
    25%, 60% { background: #fde68a; }
}
