/* ═══ DFB Rejser – Stopliste Widget ═══ */

.dfb-sl {
    --sl-bg:         #FAF6EF;
    --sl-bg-hover:   #F3ECE0;
    --sl-bg-active:  #EDE5D6;
    --sl-border:     #D4C8B0;
    --sl-text:       #3B2F20;
    --sl-muted:      #8B7D6B;
    --sl-accent:     #6B1C23;
    --sl-accent-hjem:#3B6E4F;
    --sl-radius:     6px;

    list-style: none;
    margin: 0;
    padding: 0;
    border: 1.5px solid var(--sl-border);
    border-radius: var(--sl-radius);
    overflow: hidden;
    background: var(--sl-bg);
}

/* ── enkelt stop ── */

.dfb-sl__item {
    display: flex;
    align-items: flex-start;
    gap: .65em;
    padding: .6em .8em;
    border-bottom: 1px solid var(--sl-border);
    cursor: pointer;
    transition: background .12s ease;
    user-select: none;
}

.dfb-sl__item:last-child {
    border-bottom: none;
}

.dfb-sl__item:hover {
    background: var(--sl-bg-hover);
}

.dfb-sl__item:active,
.dfb-sl__item.dfb-sl__item--active {
    background: var(--sl-bg-active);
}

.dfb-sl__item:focus-visible {
    outline: 2px solid var(--sl-accent);
    outline-offset: -2px;
}

/* ── nummer-badge ── */

.dfb-sl__nr {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65em;
    height: 1.65em;
    border-radius: 50%;
    background: var(--sl-accent);
    color: #FAF6EF;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1;
    margin-top: .1em;
}

.dfb-sl__item--hjem .dfb-sl__nr {
    background: var(--sl-accent-hjem);
}

/* ── tekst ── */

.dfb-sl__body {
    display: flex;
    flex-direction: column;
    gap: .15em;
    min-width: 0;
}

.dfb-sl__navn {
    font-size: .92rem;
    font-weight: 600;
    color: var(--sl-text);
    line-height: 1.3;
}

.dfb-sl__ref {
    font-size: .8rem;
    color: var(--sl-accent);
    font-style: italic;
    line-height: 1.3;
}

.dfb-sl__item--hjem .dfb-sl__ref {
    color: var(--sl-accent-hjem);
}

.dfb-sl__note {
    font-size: .78rem;
    color: var(--sl-muted);
    line-height: 1.35;
}

/* ── connector-linje mellem numrene ── */

.dfb-sl__item:not(:last-child) {
    position: relative;
}

.dfb-sl__item:not(:last-child)::after {
    content: '';
    position: absolute;
    left: calc(.8em + .825em);
    top: calc(.6em + 1.65em + .1em);
    bottom: 0;
    width: 2px;
    background: var(--sl-border);
    pointer-events: none;
}

.dfb-sl__item--hjem:not(:last-child)::after {
    background: repeating-linear-gradient(
        to bottom,
        var(--sl-accent-hjem) 0 3px,
        transparent 3px 6px
    );
}

/* ── link til kortet ── */

.dfb-sl__link {
    display: block;
    margin-top: .6em;
    font-size: .85rem;
    color: var(--sl-accent, #6B1C23);
    text-decoration: none;
    font-weight: 600;
}

.dfb-sl__link:hover {
    text-decoration: underline;
}

/* ── play-knap ── */

.dfb-sl__controls {
    margin-bottom: .6em;
}

.dfb-sl__play {
    display: inline-flex;
    align-items: center;
    gap: .45em;
    padding: .5em 1em;
    border: 1.5px solid var(--sl-accent, #6B1C23);
    border-radius: var(--sl-radius, 6px);
    background: var(--sl-bg, #FAF6EF);
    color: var(--sl-accent, #6B1C23);
    font-family: inherit;
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}

.dfb-sl__play:hover {
    background: var(--sl-accent, #6B1C23);
    color: #FAF6EF;
}

.dfb-sl__play--active {
    background: var(--sl-accent, #6B1C23);
    color: #FAF6EF;
}

.dfb-sl__play-icon {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}
