:root {
    --brand: #1f5f8b;
    --brand-dark: #164a6d;
    --gold: #d4a017;
}
body { background-color: #f4f6f8; -webkit-tap-highlight-color: transparent; }
.bg-brand { background-color: var(--brand) !important; }
.text-brand { color: var(--brand) !important; }
.btn-brand { background-color: var(--brand); border-color: var(--brand); color: #fff; }
.btn-brand:hover, .btn-brand:focus { background-color: var(--brand-dark); border-color: var(--brand-dark); color: #fff; }
.navbar-brand { font-weight: 600; max-width: 70vw; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); margin-bottom: 1rem; }
.card-header { background: #fff; font-weight: 600; }

/* Lista de concursantes (móvil) */
.contestant-item { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; text-decoration: none; color: inherit; }
.contestant-item:hover { background: #f8fafc; }
.contestant-number { flex: 0 0 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--brand); color: #fff;
    display: flex; align-items: center; justify-content: center; font-weight: 700; }
.contestant-name { flex: 1; min-width: 0; }
.status-badge { flex: 0 0 auto; }

/* Formulario de valoración */
.criterion-card .form-range { width: 100%; }
.criterion-card .points-input { max-width: 6rem; font-size: 1.25rem; font-weight: 600; text-align: center; }
.criterion-max { color: #6c757d; font-size: .9rem; }
.sticky-actions { position: sticky; bottom: 0; background: rgba(244,246,248,.95); backdrop-filter: blur(4px);
    padding: .75rem 0 calc(.75rem + env(safe-area-inset-bottom)); border-top: 1px solid #dee2e6; }
.total-display { font-size: 1.5rem; font-weight: 700; color: var(--brand); }

/* Resultados */
.winner-card { border: 3px solid var(--gold); background: linear-gradient(135deg, #fff9e6, #ffffff); }
.winner-trophy { font-size: 3rem; color: var(--gold); }
.winner-score { font-size: 2.8rem; font-weight: 800; color: var(--brand); }
.rank-badge { width: 2.2rem; height: 2.2rem; border-radius: 50%; display: inline-flex; align-items: center;
    justify-content: center; font-weight: 700; background: #e9ecef; }
.rank-1 { background: var(--gold); color: #fff; }
.rank-2 { background: #b8b8b8; color: #fff; }
.rank-3 { background: #c47a3b; color: #fff; }
.doc-link { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; }
.doc-link i.fa-file-pdf { color: #d33; }
.doc-link i.fa-image { color: #2a9d8f; }
.doc-link i.fa-link { color: var(--brand); }

@media (max-width: 575.98px) {
    main.container { padding-left: .75rem; padding-right: .75rem; }
    .btn-lg-mobile { padding: .8rem 1rem; font-size: 1.1rem; }
    .table-responsive { font-size: .9rem; }
}

/* Página pública del concurso */
.jury-corner { position: absolute; top: .5rem; right: 0; font-size: .72rem; line-height: 1.25; color: #6c757d;
    text-align: right; max-width: 14rem; }

/* Markdown de instrucciones */
.md-body h1 { font-size: 1.35rem; color: var(--brand); }
.md-body h2 { font-size: 1.15rem; color: var(--brand); margin-top: 1rem; }
.md-body h3 { font-size: 1.02rem; margin-top: .8rem; }
.md-body table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; font-size: .92rem; }
.md-body th, .md-body td { border: 1px solid #dee2e6; padding: .35rem .5rem; }
.md-body img { max-width: 100%; }
.md-body blockquote { border-left: 4px solid #dee2e6; padding-left: .75rem; color: #6c757d; }
.md-body :last-child { margin-bottom: 0; }
