/* ══════════════════════════════════════════════════════════
   Registreringsskjema – tilleggsstiler (runde 1)
   ══════════════════════════════════════════════════════════ */

/* Punkt 12: Mindre overskrifter */
.so-section__title {
    font-size:     1.1rem !important;
    font-weight:   700 !important;
    margin-bottom: 12px !important;
}

.so-subheading {
    font-size:     0.9rem !important;
    font-weight:   600 !important;
    margin:        16px 0 6px !important;
    color:         #50575e !important;
    text-transform: uppercase !important;
    letter-spacing: 0.4px !important;
}

/* Punkt 6: Ulike farger på Legg til-knapper */
.so-btn--add-stykke {
    background-color: #2271b1 !important;
    border-color:     #2271b1 !important;
    color:            #fff    !important;
}

.so-btn--add-stykke:hover {
    background-color: #135e96 !important;
    border-color:     #135e96 !important;
}

/* "Legg til solist" beholder grønn/sekundærfarge */
.so-add-solist {
    background-color: #00a32a !important;
    border-color:     #00a32a !important;
    color:            #fff    !important;
    font-size:        0.85rem !important;
}

.so-add-solist:hover {
    background-color: #008a20 !important;
    border-color:     #008a20 !important;
}

/* Punkt 5: Totaltid-display */
.so-program-duration-display {
    font-size:   14px;
    margin:      8px 0 12px;
    padding:     8px 12px;
    background:  #f8f9fa;
    border-left: 3px solid #ccc;
    border-radius: 0 4px 4px 0;
}

/* Punkt 10: Sceneoppsett-status */
.so-scene-setup-status {
    font-size:   13px;
    font-weight: 600;
    color:       #00a32a;
}

/* Punkt 8: Fakturatekst */
.so-description--invoice {
    margin-top:  10px;
    font-style:  normal;
    font-weight: 500;
    color:       #50575e;
}

/* Punkt 14: Inkludert-kolonne */
.so-totals-table__included {
    color:      #00a32a;
    font-style: italic;
    font-size:  0.9em;
}

/* Punkt 9: Kolonner for checkbox-lister */
.so-checkbox-list {
    column-gap: 16px;
}

.so-checkbox-list .so-checkbox-item {
    break-inside: avoid;
}

/* Punkt 12/13: so-label--group */
.so-label--group {
    font-size:   0.9rem !important;
    font-weight: 600 !important;
}

/* Sceneoppsett-knapp – innsendt tilstand */
.so-btn--scene-submitted {
    background-color: #00a32a !important;
    border-color:     #00a32a !important;
    color:            #fff    !important;
}

.so-btn--scene-submitted:hover {
    background-color: #008a20 !important;
    border-color:     #008a20 !important;
}

/* ── Tilgangsseksjon ─────────────────────────────────────────────────────── */
.so-editor {
    display:     flex;
    align-items: center;
    gap:         10px;
    padding:     8px 0;
    border-bottom: 1px solid #f0f0f0;
    flex-wrap:   wrap;
}

.so-editor__name   { font-weight: 600; }
.so-editor__email  { color: #666; font-size: 0.9em; }

.so-editor__role {
    font-size:    0.8em;
    font-weight:  600;
    padding:      2px 8px;
    border-radius: 10px;
}
.so-editor__role--editor {
    background: #d7f0dd;
    color:      #00622a;
}
.so-editor__role--viewer {
    background: #e8f4ff;
    color:      #0060a4;
}

.so-btn--small {
    font-size:  0.8em !important;
    padding:    3px 8px !important;
}

/* ── Dirigent-advarsel ───────────────────────────────────────────────────── */
.so-warning {
    display:       flex;
    align-items:   center;
    gap:           8px;
    margin:        8px 0;
    padding:       10px 14px;
    background:    #fcf9e8;
    border:        1px solid #dba617;
    border-radius: 4px;
    color:         #7a5100;
    font-size:     13px;
    font-weight:   500;
}

/* ── Registreringsvelger (punkt 3 – flere korps) ─────────────────────────── */
.so-registration-picker {
    margin-bottom: 24px;
    padding:       20px;
    background:    #f8f9fa;
    border:        1px solid #e0e0e0;
    border-radius: 6px;
}

.so-registration-picker__title {
    font-size:   1rem;
    font-weight: 700;
    margin:      0 0 6px;
}

.so-registration-picker__list {
    display:        flex;
    flex-direction: column;
    gap:            8px;
    margin-top:     12px;
}

.so-registration-picker__item {
    display:        flex;
    flex-direction: column;
    align-items:    flex-start;
    gap:            2px;
    padding:        12px 16px;
    background:     #fff;
    border:         1px solid #ddd;
    border-radius:  4px;
    cursor:         pointer;
    text-align:     left;
    width:          100%;
    transition:     border-color 0.15s, background 0.15s;
    font-family:    inherit;
}

.so-registration-picker__item:hover {
    border-color: #2271b1;
    background:   #f0f6ff;
}

.so-registration-picker__name {
    font-weight: 600;
    font-size:   15px;
    color:       #1d2327;
}

.so-registration-picker__meta {
    font-size: 12px;
    color:     #666;
}

/* ── Bytt registrering-linje ─────────────────────────────────────────────── */
.so-switch-registration {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             12px;
    margin-bottom:   16px;
    padding:         10px 14px;
    background:      #f0f6ff;
    border:          1px solid #c5d9f0;
    border-radius:   4px;
}

.so-switch-registration__label {
    font-weight: 600;
    font-size:   14px;
    color:       #1d2327;
}

/* ── Utskriftssider ──────────────────────────────────────────────────────── */
.so-print-page__title {
    font-size:     1.2rem !important;
    font-weight:   700 !important;
    margin-bottom: 12px !important;
}

.so-print-section__title {
    font-size:   1rem !important;
    font-weight: 600 !important;
    color:       #50575e !important;
    margin:      16px 0 6px !important;
}

.so-print-division {
    font-size:   0.9rem !important;
    font-weight: 600 !important;
    color:       #787c82 !important;
    margin:      10px 0 4px !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.so-print-table {
    width:           100%;
    border-collapse: collapse;
    margin-bottom:   16px;
    font-size:       14px;
}

.so-print-table th {
    text-align:    left;
    padding:       8px 12px;
    border-bottom: 2px solid #e0e0e0;
    background:    #f8f9fa;
    font-size:     12px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color:         #50575e;
}

.so-print-table td {
    padding:       8px 12px;
    border-bottom: 1px solid #f0f0f0;
}

.so-print-table tr:last-child td {
    border-bottom: none;
}

.so-print-table--compact th,
.so-print-table--compact td {
    padding: 6px 10px;
}

/* ── Konferansierskjema ───────────────────────────────────────────────────── */
.so-mc-login {
    max-width:  420px;
    margin:     0 auto;
    padding:    32px;
    background: #fff;
    border:     1px solid #e0e0e0;
    border-radius: 6px;
}

.so-mc-login__title {
    font-size:     1.1rem !important;
    margin-bottom: 16px !important;
}

.so-mc-login__form {
    display:        flex;
    flex-direction: column;
    gap:            14px;
}

.so-mc-header {
    display:         flex;
    justify-content: space-between;
    align-items:     flex-start;
    gap:             16px;
    margin-bottom:   20px;
    flex-wrap:       wrap;
}

.so-mc-header__title {
    font-size:     1.1rem !important;
    margin-bottom: 4px !important;
}

div.so-mc-page {
    max-width:    760px;
    margin-left:  auto;
    margin-right: auto;
}

/* ── Obligatoriske felt ──────────────────────────────────────────────────── */
.so-required {
    color:       #c0392b;
    font-weight: 700;
    margin-left: 2px;
}

/* ── Publikumsstemmer – hjerte-knapp ─────────────────────────────────────── */
button.so-heart-btn,
button.so-heart-btn:not(:disabled) {
    display:         inline-flex !important;
    align-items:     center !important;
    justify-content: center !important;
    width:           34px !important;
    height:          34px !important;
    border-radius:   50% !important;
    background:      #fff0f0 !important;
    border:          2px solid #e53e3e !important;
    box-shadow:      none !important;
    cursor:          pointer !important;
    transition:      background 0.2s, transform 0.1s !important;
    flex-shrink:     0 !important;
    padding:         0 !important;
    margin:          0 !important;
}

button.so-heart-btn:hover {
    background:  #ffe0e0 !important;
    transform:   scale(1.1) !important;
}

button.so-heart-btn.so-heart-btn--voted,
button.so-heart-btn.so-heart-btn--voted:not(:disabled) {
    background:   #e53e3e !important;
    border-color: #c0392b !important;
}

button.so-heart-btn.so-heart-btn--voted svg {
    stroke: #fff !important;
    fill:   #fff !important;
}

button.so-heart-btn.so-heart-btn--own,
button.so-heart-btn.so-heart-btn--own:not(:disabled) {
    background:   #f5f5f5 !important;
    border-color: #ccc    !important;
    opacity:      0.5     !important;
}

/* ── Resultatutskrift ────────────────────────────────────────────────────── */
.so-print-section {
    padding:       20px;
    background:    #f8f9fa;
    border:        1px solid #e0e0e0;
    border-radius: 6px;
    margin-bottom: 16px;
}

.so-print-section__title {
    font-size:     1rem !important;
    font-weight:   700 !important;
    margin:        0 0 12px !important;
    color:         #1d2327 !important;
}

/* ── Solistvinnere – korpsnavn ───────────────────────────────────────────── */
.so-results-soloists__band {
    display:     block;
    font-size:   0.85em;
    color:       #555;
    margin-top:  2px;
}

/* ── Registrering stengt / eier-blokkering ───────────────────────────────── */
.so-registration-closed {
    background: #fff8e1;
    border-left: 4px solid #F6C404;
    border-radius: 4px;
    padding: 1.25rem 1.5rem;
    margin: 1.5rem 0;
    color: #1c1c14;
    font-size: 1rem;
    line-height: 1.6;
}

.so-notice {
    border-radius: 4px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
    font-size: .95rem;
    line-height: 1.6;
}

.so-notice--warning {
    background: #fff8e1;
    border-left: 4px solid #F6C404;
    color: #1c1c14;
}

/* ── Registreringsvelger ─────────────────────────────────────────────────── */
.so-registration-picker {
    background: #f6f8ff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}

.so-registration-picker select {
    margin-top: 6px;
    width: 100%;
    max-width: 400px;
}

.so-notice--success {
    background: #edfaef;
    border-left: 4px solid #00a32a;
    color: #1a1a1a;
}

.so-notice--info {
    background: #e8f4ff;
    border-left: 4px solid #2271b1;
    color: #1a1a1a;
}

/* ── Salkartplassering ───────────────────────────────────────────────────── */
.so-placement-card {
    background: #f6f8ff;
    border: 1px solid #c3d4f0;
    border-left: 4px solid #2271b1;
    border-radius: 4px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}

.so-placement-card__body {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.so-placement-card__icon {
    font-size: 1.4rem;
    flex-shrink: 0;
}

/* ── Informasjonsaccordion ───────────────────────────────────────────────── */
.so-accordion {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.so-accordion__toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    background: #1d2327 !important;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    color: #fff !important;
    text-align: left;
}

.so-accordion__toggle:hover,
.so-accordion__toggle:focus,
.so-accordion__toggle:active,
.so-accordion__toggle[aria-expanded="true"] {
    background: #2c3338 !important;
    color: #fff !important;
    outline: none;
}

.so-accordion__chevron { font-size: 0.8rem; color: #ccc; }

.so-accordion__panel {
    padding: 1.25rem;
    border-top: 1px solid #ddd;
}

.so-info-section {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #eee;
}
.so-info-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.so-info-section__title {
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 0.75rem !important;
    color: #666 !important;
    line-height: 1.4 !important;
}

.so-info-table { border-collapse: collapse; margin-bottom: 0.75rem; }
.so-info-table td { padding: 3px 12px 3px 0; vertical-align: top; }

.so-info-practical {
    background: #f6f8ff;
    border-left: 3px solid #2271b1;
    padding: 0.75rem 1rem;
    border-radius: 0 4px 4px 0;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

.so-info-diplomas-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
/* ── Kjøreplan repeater ──────────────────────────────────────────────────── */
.so-drive-plan-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: start;
    margin-bottom: 8px;
    padding: 10px;
    background: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 6px;
}

.so-drive-plan-row__top {
    display: flex;
    gap: 8px;
    align-items: center;
    grid-column: 1 / -1;
}

.so-drive-plan-types {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 2px;
}

.so-drive-plan-type {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 0.82rem;
    white-space: nowrap;
    cursor: pointer;
}

.so-drive-plan-desc {
    grid-column: 1 / -1;
}

.so-drive-plan-remove {
    background: none;
    border: none;
    color: #b32d2e;
    font-size: 1rem;
    cursor: pointer;
    padding: 6px 4px;
    flex-shrink: 0;
}

.so-drive-plan-remove:hover { color: #d63638; }

.so-accordion__toggle,
.so-accordion__toggle[aria-expanded="false"] {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    background: #f6f6f6 !important;
    color: #1d2327 !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    padding: 10px 14px !important;
    cursor: pointer !important;
    text-align: left !important;
    margin-top: 1.5rem !important;
    box-shadow: none !important;
}

.so-accordion__toggle:hover,
.so-accordion__toggle[aria-expanded="true"] {
    background: #efefef !important;
    color: #1d2327 !important;
}

.so-accordion__toggle .so-subheading {
    color: #1d2327 !important;
    margin: 0 !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.08em !important;
}

.so-accordion__icon {
    font-size: 1.2rem !important;
    color: #444 !important;
    font-weight: 300 !important;
}

.so-accordion__body {
    padding-top: 12px !important;
}

#so-drive-plan-add {
    background: #2271b1 !important;
    color: #fff !important;
    border-color: #2271b1 !important;
}
.so-field-group.so-accordion {
    border: none !important;
    padding: 0 !important;
    background: none !important;
}

/* ── Seksjon-accordion ───────────────────────────────────────────────────── */
.so-section--accordion .so-section__toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    background: #f6f6f6 !important;
    color: #1d2327 !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    padding: 10px 14px !important;
    cursor: pointer !important;
    text-align: left !important;
    box-shadow: none !important;
    margin-bottom: 0 !important;
}

.so-section--accordion .so-section__toggle:hover,
.so-section--accordion .so-section__toggle[aria-expanded="true"],
.so-section--accordion .so-section__toggle[aria-expanded="false"] {
    background: #f6f6f6 !important;
    color: #1d2327 !important;
}

.so-section--accordion .so-section__toggle:hover {
    background: #efefef !important;
}

.so-section--accordion .so-section__toggle[aria-expanded="true"] {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.so-section--accordion .so-section__title {
    margin: 0 !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    color: #1d2327 !important;
    text-transform: none !important;
}

.so-section--accordion .so-section__icon {
    font-size: 1.2rem !important;
    color: #444 !important;
    font-weight: 300 !important;
    line-height: 1 !important;
}

.so-section--accordion .so-section__body {
    border: 1px solid #ddd !important;
    border-top: none !important;
    border-radius: 0 0 6px 6px !important;
    padding: 16px !important;
    background: #fff !important;
}

/* ── Informasjon om deltakelse — fjern padding over toggle ───────────────── */
#so-info-accordion.so-accordion {
    padding: 0 !important;
}

#so-info-accordion .so-accordion__toggle {
    margin: 0 !important;
    border-radius: 6px !important;
}

#so-info-accordion .so-accordion__toggle[aria-expanded="true"] {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* ── Kontaktliste – forhindre knapp-hopp ─────────────────────────────────── */
#so-contacts-list {
    min-height: 1px;
}

/* ── Stykke-felt layout ──────────────────────────────────────────────────── */
.so-stykke__label--duration input {
    width: 70px !important;
}

/* ── Konferansier sal-filter ─────────────────────────────────────────────── */
.so-mc-hall-btn--active {
    background: #1d2327 !important;
    color: #fff !important;
    border-color: #1d2327 !important;
}