/* =============================================================================
   Stavanger Open – Musikkresultater og Underholdningsresultater (offentlig)
   ============================================================================= */

.so-results-wrapper {
    max-width:   860px;
    margin:      0 auto;
    padding:     1rem;
    font-family: inherit;
}

.so-results-empty {
    color:      #50575e;
    font-style: italic;
}

/* ── Seksjoner ────────────────────────────────────────────────────────────── */

.so-results-section {
    margin-bottom: 2.5rem;
}

.so-results-section__title {
    font-size:      1.15rem;
    font-weight:    700;
    margin:         0 0 1rem;
    padding-bottom: 0.4rem;
    border-bottom:  3px solid #1d2327;
    color:          #1d2327;
}

.so-results-section--soloists .so-results-section__title,
.so-results-section--judges   .so-results-section__title {
    border-bottom-color: #2271b1;
    color:               #2271b1;
}

/* ── Divisjon ─────────────────────────────────────────────────────────────── */

.so-results-division {
    margin-bottom: 1.75rem;
}

.so-results-division__title {
    font-size:      0.78rem;
    font-weight:    600;
    margin:         0 0 0.4rem;
    color:          #50575e;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ── Resultattabell ───────────────────────────────────────────────────────── */

.so-results-table {
    width:           100%;
    border-collapse: collapse;
    font-size:       0.92rem;
    border-top:      1px solid #e0e0e0;
}

.so-results-table thead th {
    text-align:     left;
    padding:        0.35rem 0.75rem;
    font-weight:    600;
    font-size:      0.78rem;
    color:          #787c82;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom:  1px solid #e0e0e0;
    background:     transparent;
}

.so-results-table__rank {
    width:      60px;
    text-align: center !important;
}

.so-results-table__points {
    width:      80px;
    text-align: center !important;
}

.so-results-table__row td {
    padding:        0.55rem 0.75rem;
    border-bottom:  1px solid #e0e0e0;
    vertical-align: middle;
    color:          #1d2327;
}

.so-results-table__row:last-child td {
    border-bottom: none;
}

.so-results-table__row .so-results-table__rank {
    font-weight: 700;
    color:       #787c82;
    text-align:  center;
}

.so-results-table__row .so-results-table__points {
    font-weight:          600;
    font-variant-numeric: tabular-nums;
    text-align:           center;
    color:                #1d2327;
}

.so-results-table__row .so-results-table__name {
    font-weight: 500;
    color:       #1d2327;
}

/* Gullplass */
.so-results-table__row--gold td {
    background: #fffbea;
}

.so-results-table__row--gold .so-results-table__rank {
    color: #b45309;
}

.so-results-table__row--gold .so-results-table__name {
    font-weight: 700;
}

/* ── Solistvinnere ────────────────────────────────────────────────────────── */

.so-results-soloists {
    margin-bottom: 1rem;
}

.so-results-soloists__division {
    font-size:      0.78rem;
    font-weight:    600;
    margin:         0 0 0.35rem;
    color:          #50575e;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.so-results-soloists__list {
    margin:     0;
    padding:    0 0 0 1.25rem;
    list-style: disc;
}

.so-results-soloists__list li {
    padding:   0.2rem 0;
    font-size: 0.92rem;
    color:     #1d2327;
}

.so-results-soloists__instrument {
    color:     #50575e;
    font-size: 0.9em;
}

/* ── Dommerliste ──────────────────────────────────────────────────────────── */

.so-results-judges__list {
    margin:     0;
    padding:    0 0 0 1.25rem;
    list-style: disc;
}

.so-results-judges__list li {
    padding:   0.2rem 0;
    font-size: 0.92rem;
    color:     #1d2327;
}

/* Med bilde – samme layout som programsiden */
.so-results-judges__list--profiles {
    display:    flex;
    flex-wrap:  wrap;
    gap:        1.5rem;
    padding:    0;
    list-style: none;
}

.so-results-judges__list--profiles li {
    padding: 0;
}

.so-judge-profile-btn--card {
    display:        flex !important;
    flex-direction: column !important;
    align-items:    center !important;
    gap:            0.4rem !important;
    text-decoration: none !important;
}

.so-judge-profile-btn--card:hover span,
.so-judge-profile-btn--card:focus span {
    text-decoration: underline;
}

.so-results-judge__photo {
    width:         72px;
    height:        72px;
    border-radius: 50%;
    object-fit:    cover;
    display:       block;
}

/* ── Responsiv ────────────────────────────────────────────────────────────── */

@media ( max-width: 500px ) {
    .so-results-table {
        font-size: 0.88rem;
    }
    .so-results-table__rank   { width: 40px; }
    .so-results-table__points { width: 60px; }
}

/* =============================================================================
   Dommerprofil-modal (delt mellom resultatsider og programvisning)
   ============================================================================= */

/* Klikkbar dommer-knapp i lister */
.so-judge-profile-btn {
    background:      none !important;
    border:          none !important;
    box-shadow:      none !important;
    padding:         0 !important;
    margin:          0 !important;
    font:            inherit !important;
    color:           #2271b1 !important;
    cursor:          pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
    border-radius:   0 !important;
}

.so-judge-profile-btn:hover,
.so-judge-profile-btn:focus,
.so-judge-profile-btn:active {
    background: none !important;
    color:      #135e96 !important;
    box-shadow: none !important;
}

/* Modal */
.so-judge-modal {
    position:        fixed;
    inset:           0;
    z-index:         100000;
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.so-judge-modal[hidden] {
    display: none;
}

.so-judge-modal__backdrop {
    position:   absolute;
    inset:      0;
    background: rgba(0,0,0,.5);
}

.so-judge-modal__box {
    position:      relative;
    background:    #fff;
    border-radius: 6px;
    padding:       2rem;
    width:         min(480px, 90vw);
    max-height:    85vh;
    overflow-y:    auto;
    box-shadow:    0 8px 32px rgba(0,0,0,.25);
    text-align:    center;
}

.so-judge-modal__close {
    position:      absolute;
    top:           0.75rem;
    right:         0.75rem;
    background:    transparent !important;
    border:        none !important;
    box-shadow:    none !important;
    border-radius: 0 !important;
    font-size:     1.5rem;
    line-height:   1;
    color:         #787c82 !important;
    cursor:        pointer;
    padding:       0.25rem 0.5rem;
}

.so-judge-modal__close:hover,
.so-judge-modal__close:focus,
.so-judge-modal__close:active {
    background: transparent !important;
    color:      #1d2327 !important;
    box-shadow: none !important;
}

.so-judge-modal__photo-wrap {
    margin-bottom: 1rem;
}

.so-judge-modal__photo {
    width:         120px;
    height:        120px;
    border-radius: 50%;
    object-fit:    cover;
    display:       block;
    margin:        0 auto;
}

.so-judge-modal__name {
    font-size:   1.2rem;
    font-weight: 700;
    margin:      0 0 0.75rem;
    color:       #1d2327;
}

.so-judge-modal__bio {
    font-size:   0.95rem;
    color:       #1d2327;
    line-height: 1.6;
    white-space: pre-line;
    text-align:  left;
}