/* /Components/Admin/Moderation.razor.rz.scp.css */
.review-card[b-oqq6gg6eof] {
    padding: 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface);
}

/* Godkend og afvis side om side. Afvisningen skal have plads til en begrundelse,
   så dens formular får lov at vokse — og input-group'en skal fylde formularen ud,
   ellers klemmes feltet sammen om sin placeholder. */
.review-actions[b-oqq6gg6eof] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem;
}

.review-actions form:last-child[b-oqq6gg6eof] {
    flex: 1 1 22rem;
    min-width: 0;
}

.review-actions form:last-child[b-oqq6gg6eof]  .input-group {
    width: 100%;
}

.empty-queue[b-oqq6gg6eof] {
    padding: 2rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    color: var(--stallo-accent-strong);
}

.preserve-lines[b-oqq6gg6eof] {
    white-space: pre-line;
}
/* /Components/Events/Byloppesalg.razor.rz.scp.css */
.event-header[b-3ag2nzbege] {
    border-bottom: 1px solid var(--stallo-line);
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
}

.event-when[b-3ag2nzbege] {
    color: var(--stallo-ink-muted);
    margin-bottom: 0.75rem;
}

.event-map[b-3ag2nzbege] {
    width: 100%;
    height: 22rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    margin-bottom: 1rem;
}

.participant-list[b-3ag2nzbege] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 0.6rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.participant-link[b-3ag2nzbege] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    padding: 0.6rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    text-decoration: none;
    color: inherit;
}

.participant-link:hover[b-3ag2nzbege] {
    background: var(--stallo-surface-sunken);
}

.participant-link img[b-3ag2nzbege],
.participant-thumb-empty[b-3ag2nzbege] {
    flex: 0 0 auto;
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface-sunken);
}

.participant-thumb-empty[b-3ag2nzbege] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--stallo-line);
    border: 1px dashed var(--stallo-line);
}

.stand-number[b-3ag2nzbege] {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    margin-bottom: 0.15rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 500;
    background: var(--stallo-accent-soft);
    color: var(--stallo-accent-strong);
}

/* Tilmeldingsboksen skal skille sig ud — det er sidens ene handling. */
.signup-box[b-3ag2nzbege] {
    padding: 1.5rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
}

.preserve-lines[b-3ag2nzbege] {
    white-space: pre-line;
}
/* /Components/Events/Byloppesalgene.razor.rz.scp.css */
.event-list[b-8k29g843cc] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.event-link[b-8k29g843cc] {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 0.85rem;
    margin-bottom: 0.6rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface);
    text-decoration: none;
    color: inherit;
}

.event-link:hover[b-8k29g843cc] {
    background: var(--stallo-surface-sunken);
}

/* Datoblok som på en kalender — gør det muligt at scanne listen efter dag. */
.event-date[b-8k29g843cc] {
    flex: 0 0 auto;
    width: 3.5rem;
    text-align: center;
    padding: 0.4rem 0;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-accent-soft);
    color: var(--stallo-accent-strong);
    line-height: 1.1;
}

.event-day[b-8k29g843cc] {
    display: block;
    font-size: 1.35rem;
    font-weight: 700;
}

.event-month[b-8k29g843cc] {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.event-body[b-8k29g843cc] {
    min-width: 0;
}

.empty-state[b-8k29g843cc] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}
/* /Components/Events/Deltagere.razor.rz.scp.css */
.invite-box[b-ytr8di92dc] {
    padding: 1.25rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
}

.invite-code-row[b-ytr8di92dc] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

/* Koden skal kunne læses op i telefonen — derfor stor, monospaced og med luft
   mellem tegnene. */
.invite-code[b-ytr8di92dc] {
    padding: 0.35rem 0.7rem;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface);
    border: 1px solid var(--stallo-line);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--stallo-ink);
}

.invite-code-row input[b-ytr8di92dc] {
    flex: 1 1 16rem;
    min-width: 0;
}

.participant-admin-list[b-ytr8di92dc] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.participant-admin[b-ytr8di92dc] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
    padding: 0.85rem;
    margin-bottom: 0.6rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface);
}

.participant-info[b-ytr8di92dc] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    min-width: 0;
}

.participant-info img[b-ytr8di92dc],
.participant-thumb-empty[b-ytr8di92dc] {
    flex: 0 0 auto;
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface-sunken);
}

.participant-thumb-empty[b-ytr8di92dc] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--stallo-line);
    border: 1px dashed var(--stallo-line);
}

.participant-actions[b-ytr8di92dc] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.participant-actions .input-group[b-ytr8di92dc] {
    width: 14rem;
}

.stand-number[b-ytr8di92dc] {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 500;
    background: var(--stallo-accent-soft);
    color: var(--stallo-accent-strong);
}

.empty-state[b-ytr8di92dc] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}
/* /Components/Events/MineByloppesalg.razor.rz.scp.css */
.event-admin-card[b-r2iltj9xes] {
    height: 100%;
    padding: 1.25rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface);
}

.badge-pending[b-r2iltj9xes] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-weight: 500;
    background: #fdf6e8;
    color: #8a6415;
}

.status[b-r2iltj9xes] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8125rem;
    white-space: nowrap;
}

.status--live[b-r2iltj9xes] { color: var(--stallo-accent-strong); }
.status--pending[b-r2iltj9xes] { color: #8a6415; }
.status--rejected[b-r2iltj9xes] { color: #96421f; }
.status--draft[b-r2iltj9xes] { color: var(--stallo-ink-muted); }

.empty-state[b-r2iltj9xes] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}
/* /Components/Layout/AccountLayout.razor.rz.scp.css */
.account-shell[b-ulgf2zujxg] {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 2rem 1rem;
    background: var(--stallo-surface-sunken, #f5f3ef);
}

.account-card[b-ulgf2zujxg] {
    width: 100%;
    max-width: 26rem;
    background: #fff;
    border-radius: 14px;
    padding: 2rem;
    box-shadow: 0 1px 2px rgb(0 0 0 / 6%), 0 8px 24px rgb(0 0 0 / 8%);
}

.account-brand[b-ulgf2zujxg] {
    display: block;
    margin-bottom: 1.5rem;
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: -0.02em;
    text-decoration: none;
    color: var(--stallo-ink, #2b2622);
}

.account-foot[b-ulgf2zujxg] {
    margin: 0;
    font-size: 0.875rem;
}

/* h1 er sidens overskrift, men på et login-kort skal den ikke fylde som en artikeltitel. */
[b-ulgf2zujxg] h1 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.site[b-znvdwcoso9] {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

.site-header[b-znvdwcoso9] {
    border-bottom: 1px solid var(--stallo-line, #e5e0d8);
    background: #fff;
}

.site-nav[b-znvdwcoso9] {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.brand[b-znvdwcoso9] {
    display: flex;
    align-items: center;
    text-decoration: none;

    /* Højden styrer, bredden følger med. Logoet er 1345×327, altså ca. 4,1:1 —
       width/height-attributterne i markup'en giver browseren forholdet, så der
       ikke sker et hop i layoutet mens SVG'en hentes. */
    flex: 0 0 auto;
}

/* 200 px er logopakkens nedre grænse for det vandrette lockup, ikke et tal valgt
   for at se rigtigt ud. Bredden sættes derfor, og højden følger med — sætter man
   højden i stedet, ændrer den effektive bredde sig med skriftstørrelsen. */
.brand img[b-znvdwcoso9] {
    display: block;
    width: 200px;
    height: auto;
}

/* Under 30rem skifter <picture> til den stablede udgave (560×406), som har et
   helt andet forhold. Her er højden det rigtige mål. */
@media (max-width: 30rem) {
    .brand img[b-znvdwcoso9] {
        width: auto;
        height: 2.75rem;
    }
}

.nav-links[b-znvdwcoso9] {
    display: flex;
    gap: 1rem;
}

/* Skubber konto-delen ud til højre uden at bruge float eller absolut placering. */
.nav-account[b-znvdwcoso9] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.site-nav a[b-znvdwcoso9] {
    color: var(--stallo-ink-muted, #5a5149);
    text-decoration: none;
}

.site-nav a:hover[b-znvdwcoso9] {
    color: var(--stallo-ink, #2b2622);
    text-decoration: underline;
}

.nav-user[b-znvdwcoso9] {
    font-weight: 500;
}

.btn-cta[b-znvdwcoso9] {
    background: var(--stallo-accent, #2f6f4f);
    color: #fff !important;
    padding: 0.4rem 0.85rem;
    border-radius: 8px;
}

.btn-cta:hover[b-znvdwcoso9] {
    text-decoration: none !important;
    filter: brightness(1.08);
}

.logout-form[b-znvdwcoso9] {
    display: inline;
    margin: 0;
}

/* En knap der skal se ud som et link — formularen kræver en knap, men visuelt
   hører "log ud" sammen med de øvrige links. */
.link-button[b-znvdwcoso9] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--stallo-ink-muted, #5a5149);
    cursor: pointer;
}

.link-button:hover[b-znvdwcoso9] {
    color: var(--stallo-ink, #2b2622);
    text-decoration: underline;
}

.site-main[b-znvdwcoso9] {
    flex: 1;
    width: 100%;
    max-width: 72rem;
    margin: 0 auto;
    padding: 2rem 1rem;
}

.site-footer[b-znvdwcoso9] {
    border-top: 1px solid var(--stallo-line, #e5e0d8);

    /* Kun lodret polstring her. Den vandrette hører til på .footer-inner, så
       teksten flugter med .site-main i alle bredder — lå den på begge, ville
       footeren stå 1rem længere inde end indholdet ovenfor på en telefon. */
    padding: 1.5rem 0;
    color: var(--stallo-ink-muted, #5a5149);
    font-size: 0.875rem;
}

/* Samme bredde og centrering som .site-main, så footerens tekst flugter med
   indholdet ovenfor i stedet for at starte ude ved kanten. */
.footer-inner[b-znvdwcoso9] {
    max-width: 72rem;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 1.5rem;
}

.footer-inner p[b-znvdwcoso9] {
    margin: 0;
}

.footer-contact a[b-znvdwcoso9],
.footer-links a[b-znvdwcoso9] {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--stallo-line, #e5e0d8);
}

.footer-contact a:hover[b-znvdwcoso9],
.footer-contact a:focus-visible[b-znvdwcoso9],
.footer-links a:hover[b-znvdwcoso9],
.footer-links a:focus-visible[b-znvdwcoso9] {
    color: var(--stallo-ink, #2b2622);
    border-bottom-color: currentColor;
}

.footer-sep[b-znvdwcoso9] {
    margin: 0 0.4rem;
    opacity: 0.5;
}

@media (max-width: 40rem) {
    .nav-links[b-znvdwcoso9] {
        display: none;
    }
}

#blazor-error-ui[b-znvdwcoso9] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-znvdwcoso9] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Moderationslinket skal kunne skelnes fra de almindelige links — det er en
   funktion få har adgang til, og det hjælper at kunne se det med det samme. */
.nav-admin[b-znvdwcoso9] {
    color: var(--stallo-clay) !important;
    font-weight: 500;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-lzc6qcrztg],
.components-reconnect-repeated-attempt-visible[b-lzc6qcrztg],
.components-reconnect-failed-visible[b-lzc6qcrztg],
.components-pause-visible[b-lzc6qcrztg],
.components-resume-failed-visible[b-lzc6qcrztg],
.components-rejoining-animation[b-lzc6qcrztg] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-retrying[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-failed[b-lzc6qcrztg],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-lzc6qcrztg] {
    display: block;
}


#components-reconnect-modal[b-lzc6qcrztg] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-lzc6qcrztg 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-lzc6qcrztg 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-lzc6qcrztg 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-lzc6qcrztg]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-lzc6qcrztg 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-lzc6qcrztg {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-lzc6qcrztg {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-lzc6qcrztg {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-lzc6qcrztg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-lzc6qcrztg] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-lzc6qcrztg] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-lzc6qcrztg] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-lzc6qcrztg] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-lzc6qcrztg] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-lzc6qcrztg] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-lzc6qcrztg 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-lzc6qcrztg] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-lzc6qcrztg {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Find.razor.rz.scp.css */
.filter-bar[b-nc1ecgd03f] {
    padding: 1rem;
    margin: 1rem 0 1.5rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
}

.filter-row[b-nc1ecgd03f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-end;
}

.filter-field[b-nc1ecgd03f] {
    flex: 0 1 9rem;
}

/* Søgefeltet skal have plads; resten er korte valg. */
.filter-field--grow[b-nc1ecgd03f] {
    flex: 1 1 16rem;
}

.filter-actions[b-nc1ecgd03f] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.results-head[b-nc1ecgd03f] {
    margin-bottom: 0.75rem;
}

.find-map[b-nc1ecgd03f] {
    width: 100%;
    height: 26rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    margin-bottom: 1.5rem;
}

.result-list[b-nc1ecgd03f] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: 0.85rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.result-card[b-nc1ecgd03f] {
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface);
    overflow: hidden;
}

/* Hele kortet er ét link — større klikflade på telefon end en lille titel. */
.result-link[b-nc1ecgd03f] {
    display: flex;
    gap: 0.85rem;
    padding: 0.85rem;
    text-decoration: none;
    color: inherit;
}

.result-link:hover[b-nc1ecgd03f] {
    background: var(--stallo-surface-sunken);
}

.result-link img[b-nc1ecgd03f],
.result-thumb-empty[b-nc1ecgd03f] {
    flex: 0 0 auto;
    width: 5rem;
    height: 5rem;
    object-fit: cover;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface-sunken);
}

.result-thumb-empty[b-nc1ecgd03f] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--stallo-line);
    font-size: 1.6rem;
    border: 1px dashed var(--stallo-line);
}

.result-body[b-nc1ecgd03f] {
    min-width: 0;
}

.result-body h2[b-nc1ecgd03f] {
    overflow-wrap: anywhere;
}

.empty-state[b-nc1ecgd03f] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}

@media (max-width: 36rem) {
    .filter-field[b-nc1ecgd03f],
    .filter-field--grow[b-nc1ecgd03f] {
        flex: 1 1 100%;
    }

    .find-map[b-nc1ecgd03f] {
        height: 18rem;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
.hero[b-1x36xjoiay] {
    padding: 2rem 0 1rem;
    max-width: 44rem;
}

.hero-lead[b-1x36xjoiay] {
    font-size: 1.15rem;
    color: var(--stallo-ink-muted);
    margin-bottom: 1.75rem;
}

.hero-actions[b-1x36xjoiay] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.feature-icon[b-1x36xjoiay] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: 0.75rem;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-accent-soft);
    color: var(--stallo-accent-strong);
    font-size: 1.35rem;
}

.feature p[b-1x36xjoiay] {
    color: var(--stallo-ink-muted);
    margin-bottom: 0;
}

/* Kortene for de to salgstyper. Baggrunden er den nedsænkede flade frem for hvid,
   så de læses som et afsnit for sig og ikke som endnu en tekstblok. */
.type-card[b-1x36xjoiay] {
    height: 100%;
    padding: 1.5rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
}

.type-card p[b-1x36xjoiay] {
    color: var(--stallo-ink-muted);
}
/* /Components/Products/MineVarer.razor.rz.scp.css */
.product-list[b-bhykp4jpe7] {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
}

.product-row[b-bhykp4jpe7] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    margin-bottom: 0.6rem;
    background: var(--stallo-surface);
}

/* Solgte varer tones ned frem for at skjules — ejeren skal kunne se dem og
   fortryde, og det giver et indtryk af hvor meget der er gået. */
.product-row.is-sold[b-bhykp4jpe7] {
    opacity: 0.6;
    background: var(--stallo-surface-sunken);
}

.product-row.is-sold h2[b-bhykp4jpe7] {
    text-decoration: line-through;
}

.product-thumb[b-bhykp4jpe7] {
    flex: 0 0 auto;
    width: 3.5rem;
    height: 3.5rem;
    object-fit: cover;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface-sunken);
}

.product-thumb--empty[b-bhykp4jpe7] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--stallo-line);
    font-size: 1.4rem;
    border: 1px dashed var(--stallo-line);
}

.product-main[b-bhykp4jpe7] {
    flex: 1 1 auto;
    min-width: 0;
}

.product-main h2[b-bhykp4jpe7] {
    overflow-wrap: anywhere;
}

.price[b-bhykp4jpe7] {
    font-weight: 500;
    color: var(--stallo-ink);
}

.product-actions[b-bhykp4jpe7] {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.empty-state[b-bhykp4jpe7] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}

@media (max-width: 36rem) {
    .product-row[b-bhykp4jpe7] {
        flex-wrap: wrap;
    }

    .product-actions[b-bhykp4jpe7] {
        width: 100%;
    }
}
/* /Components/Ruter/MineRuter.razor.rz.scp.css */
.new-route-box[b-10pdgvifkj] {
    padding: 1.25rem;
    margin: 1rem 0;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    max-width: 32rem;
}

.route-list[b-10pdgvifkj] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.route-card[b-10pdgvifkj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.85rem;
    margin-bottom: 0.5rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface);
}

.route-link[b-10pdgvifkj] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.4rem 0;
    text-decoration: none;
    color: inherit;
}

.route-icon[b-10pdgvifkj] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-accent-soft);
    color: var(--stallo-accent-strong);
    font-size: 1.2rem;
}

.empty-state[b-10pdgvifkj] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}
/* /Components/Ruter/Rute.razor.rz.scp.css */
.route-map[b-p8yo5ief92] {
    width: 100%;
    height: 24rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    margin-bottom: 1.25rem;
}

.stop-list[b-p8yo5ief92] {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: stop;
}

.stop[b-p8yo5ief92] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem 0.85rem;
    margin-bottom: 0.5rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface);
}

/* Nummeret her skal se ud som pinden på kortet — det er den samme oplysning
   to steder, og de skal kunne genkendes som par. */
.stop-number[b-p8yo5ief92] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 50%;
    background: var(--stallo-accent);
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
}

.stop.is-visited[b-p8yo5ief92] {
    background: var(--stallo-surface-sunken);
}

.stop.is-visited .stop-number[b-p8yo5ief92] {
    background: var(--stallo-ink-muted);
}

.stop.is-visited .stop-body h2[b-p8yo5ief92] {
    text-decoration: line-through;
}

.stop-body[b-p8yo5ief92] {
    flex: 1 1 auto;
    min-width: 0;
}

.stop-body a[b-p8yo5ief92] {
    color: inherit;
    text-decoration: none;
}

.stop-body a:hover[b-p8yo5ief92] {
    text-decoration: underline;
}

.stop-actions[b-p8yo5ief92] {
    flex: 0 0 auto;
    display: flex;
    gap: 0.25rem;
}

.visited-tag[b-p8yo5ief92] {
    font-size: 0.75rem;
    color: var(--stallo-ink-muted);
}

.share-box[b-p8yo5ief92] {
    padding: 1.25rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
}

.empty-state[b-p8yo5ief92] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}
/* /Components/SalesPoints/MineSalgssteder.razor.rz.scp.css */
.salespoint-card[b-syo8ow99km] {
    height: 100%;
    padding: 1.25rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface);
}

.empty-state[b-syo8ow99km] {
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
    text-align: center;
}

.status[b-syo8ow99km] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8125rem;
    white-space: nowrap;
}

.status--live[b-syo8ow99km] { color: var(--stallo-accent-strong); }
.status--pending[b-syo8ow99km] { color: #8a6415; }
.status--rejected[b-syo8ow99km] { color: #96421f; }
.status--draft[b-syo8ow99km] { color: var(--stallo-ink-muted); }

/* Miniaturen står øverst i kortet og beskæres til et fast forhold, så kortene
   får samme højde uanset billedets format. alt="" med vilje: titlen står
   lige nedenunder, og en gentagelse ville kun larme for en skærmlæser. */
.card-thumb[b-syo8ow99km] {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--stallo-radius-sm);
    margin-bottom: 0.85rem;
    display: block;
    background: var(--stallo-surface-sunken);
}
/* /Components/SalesPoints/RedigerSalgssted.razor.rz.scp.css */
legend[b-eim4vy2of5] {
    font-family: "Fraunces", Georgia, serif;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

fieldset[b-eim4vy2of5] {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--stallo-line);
}

fieldset:last-of-type[b-eim4vy2of5] {
    border-bottom: 0;
}

/* Tidsfelterne skal ikke strække sig over hele kolonnen — et klokkeslæt fylder lidt. */
.opening-hours input[type="time"][b-eim4vy2of5] {
    max-width: 8rem;
}

.opening-hours th[scope="row"][b-eim4vy2of5] {
    white-space: nowrap;
}
/* /Components/SalesPoints/Salgssted.razor.rz.scp.css */
.salespoint header[b-73jng3lii7] {
    border-bottom: 1px solid var(--stallo-line);
    padding-bottom: 1.25rem;
}

.info-card[b-73jng3lii7] {
    padding: 1.25rem;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius);
    background: var(--stallo-surface-sunken);
}

.detail-map[b-73jng3lii7] {
    width: 100%;
    height: 240px;
    border-radius: var(--stallo-radius-sm);
}

/* Ejerens beskrivelse renderes som ren tekst. Linjeskift skal stadig kunne ses,
   ellers bliver et afsnitsopdelt opslag til én lang klump. */
.preserve-lines[b-73jng3lii7] {
    white-space: pre-line;
}

/* Galleri: første billede fylder, resten står som miniaturer. Et loppesalg har
   sjældent mange billeder, og et fast grid ville give tomme huller. */
.gallery[b-73jng3lii7] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.75rem;
}

.gallery-item[b-73jng3lii7] {
    margin: 0;
    border-radius: var(--stallo-radius-sm);
    overflow: hidden;
    background: var(--stallo-surface-sunken);
}

.gallery-item img[b-73jng3lii7] {
    width: 100%;
    height: 100%;
    max-height: 22rem;
    object-fit: cover;
    display: block;
}

.gallery-item:first-child[b-73jng3lii7] {
    grid-column: 1 / -1;
}

.gallery-item:first-child img[b-73jng3lii7] {
    max-height: 26rem;
}

/* Varekort: kompakte, så mange kan ses uden at scrolle. Billedet er valgfrit —
   mange lægger varer op uden foto. */
.product-cards[b-73jng3lii7] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.product-card[b-73jng3lii7] {
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    overflow: hidden;
    background: var(--stallo-surface);
}

.product-card img[b-73jng3lii7] {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    background: var(--stallo-surface-sunken);
}

.product-card-body[b-73jng3lii7] {
    padding: 0.6rem 0.7rem;
}

.product-card.is-sold[b-73jng3lii7] {
    opacity: 0.65;
}

.product-card.is-sold h3[b-73jng3lii7] {
    text-decoration: line-through;
}

.sold-tag[b-73jng3lii7] {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 500;
    background: var(--stallo-clay-soft);
    color: var(--stallo-clay);
}

.price[b-73jng3lii7] {
    font-weight: 500;
}
/* /Components/Shared/AddressPicker.razor.rz.scp.css */
.address-map[b-2ct6h8dsju] {
    width: 100%;
    height: 340px;
    border: 1px solid var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
}

/* Leaflet tegner sine paneler med høj z-index. Uden loft lægger kortet sig
   oven på dropdowns og modaler andre steder på siden. */
[b-2ct6h8dsju] .leaflet-pane,
[b-2ct6h8dsju] .leaflet-top,
[b-2ct6h8dsju] .leaflet-bottom {
    z-index: 400;
}
/* /Components/Shared/ImageUploader.razor.rz.scp.css */
.image-grid[b-wup5tg2k6k] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

.image-tile[b-wup5tg2k6k] {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: var(--stallo-radius-sm);
    overflow: hidden;
    border: 1px solid var(--stallo-line);
    background: var(--stallo-surface-sunken);
}

.image-tile.is-primary[b-wup5tg2k6k] {
    border-color: var(--stallo-accent);
    box-shadow: 0 0 0 2px rgb(47 111 79 / 20%);
}

.image-tile img[b-wup5tg2k6k] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Værktøjerne ligger oven på billedet. De vises altid på touch — en hover-only
   løsning ville gøre dem uopnåelige på telefon, hvor de fleste uploader fra. */
.image-tools[b-wup5tg2k6k] {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.25rem;
    background: rgb(255 255 255 / 92%);
}

.image-tools .btn[b-wup5tg2k6k] {
    padding: 0.15rem 0.4rem;
    line-height: 1;
}

.primary-badge[b-wup5tg2k6k] {
    position: absolute;
    top: 0.4rem;
    left: 0.4rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 500;
    background: var(--stallo-accent);
    color: #fff;
}

.upload-drop[b-wup5tg2k6k] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1rem;
    border: 1px dashed var(--stallo-line);
    border-radius: var(--stallo-radius-sm);
    background: var(--stallo-surface-sunken);
    color: var(--stallo-ink-muted);
    cursor: pointer;
    text-align: center;
}

.upload-drop:hover[b-wup5tg2k6k] {
    border-color: var(--stallo-accent);
    color: var(--stallo-accent-strong);
}
