/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-nvcek88s6m] {
    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-nvcek88s6m] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Application shell ------------------------------------------------------ */

.app-header[b-nvcek88s6m] {
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(253, 248, 241, .86);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--hugsa-line);
}

.app-header__inner[b-nvcek88s6m] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding-block: 0.7rem;
}

.app-brand[b-nvcek88s6m] {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    text-decoration: none;
    color: var(--hugsa-ink);
}

.app-brand:hover[b-nvcek88s6m],
.app-brand:focus-visible[b-nvcek88s6m] {
    color: var(--hugsa-sea-deep);
}

.app-brand__mark[b-nvcek88s6m] {
    width: 2.25rem;
    height: 2.25rem;
    flex: none;
    border-radius: 0.75rem;
    box-shadow: var(--hugsa-shadow-1);
}

.app-brand__text[b-nvcek88s6m] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.app-brand__name[b-nvcek88s6m] {
    font-family: var(--hugsa-font-display);
    font-size: 1.125rem;
    font-weight: 700;
}

.app-brand__product[b-nvcek88s6m] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.app-header__account[b-nvcek88s6m] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Development only: the way back to the Demo Hub. Deliberately set apart from the
   product navigation with a dashed border, so nobody mistakes it for a customer
   feature in a screenshot. */

.app-header__demo[b-nvcek88s6m] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.7rem;
    border: 1px dashed var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-cream);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    color: var(--hugsa-sea-deep);
    white-space: nowrap;
}

.app-header__demo span[b-nvcek88s6m] {
    color: var(--hugsa-amber-deep);
}

.app-header__demo:hover[b-nvcek88s6m],
.app-header__demo:focus-visible[b-nvcek88s6m] {
    border-color: var(--hugsa-sea);
    background: var(--hugsa-sea-soft);
    color: var(--hugsa-sea-deep);
}

.app-header__demo-label[b-nvcek88s6m] {
    white-space: nowrap;
}

/* The navigation lives in MainNav, which owns the pill styles. The shell only
   decides where the two copies sit: one in the header row, one in the phone menu.
   A closed <details> gives its content no width, so the wide layout cannot be the
   one inside the disclosure — hence two instances of the same component. */

.app-header__nav[b-nvcek88s6m] {
    display: flex;
    align-items: center;
    min-width: 0;
}

.app-menu[b-nvcek88s6m] {
    display: none;
    align-items: center;
    min-width: 0;
}

.app-menu__panel[b-nvcek88s6m] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.app-menu__toggle[b-nvcek88s6m] {
    display: none;
}

/* The account is a disclosure: the name is the summary, sign-out lives inside.
   That is one fewer permanent button competing with the page's own actions, and
   the chevron is what tells a first-time user there is anything in there. */

.app-account[b-nvcek88s6m] {
    position: relative;
    flex: none;
    margin-inline-start: auto;
}

.app-account > summary[b-nvcek88s6m] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.5rem;
    border: 1px solid transparent;
    border-radius: var(--hugsa-radius-sm);
    cursor: pointer;
    list-style: none;
}

.app-account > summary[b-nvcek88s6m]::-webkit-details-marker {
    display: none;
}

.app-account > summary:hover[b-nvcek88s6m],
.app-account > summary:focus-visible[b-nvcek88s6m],
.app-account[open] > summary[b-nvcek88s6m] {
    border-color: var(--hugsa-line-strong);
    background: var(--hugsa-sea-soft);
}

.app-account__text[b-nvcek88s6m] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 0;
}

.app-account__chev[b-nvcek88s6m] {
    flex: none;
    width: 0.5rem;
    height: 0.5rem;
    border-right: 1.5px solid var(--hugsa-ink-faint);
    border-bottom: 1.5px solid var(--hugsa-ink-faint);
    transform: rotate(45deg) translate(-0.1rem, -0.1rem);
}

.app-account[open] .app-account__chev[b-nvcek88s6m] {
    transform: rotate(225deg) translate(-0.1rem, -0.1rem);
}

.app-account__who[b-nvcek88s6m] {
    max-width: 11rem;
    overflow: hidden;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-account__role[b-nvcek88s6m] {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.app-account__menu[b-nvcek88s6m] {
    position: absolute;
    top: calc(100% + 0.4rem);
    right: 0;
    z-index: 30;
    display: grid;
    gap: 0.5rem;
    min-width: 14rem;
    padding: 0.75rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-surface);
    box-shadow: var(--hugsa-shadow-2);
}

.app-account__meta[b-nvcek88s6m] {
    font-size: 0.75rem;
    color: var(--hugsa-ink-soft);
}

.app-footer[b-nvcek88s6m] {
    padding-bottom: 1.5rem;
    font-size: 0.8125rem;
    color: var(--hugsa-ink-soft);
}

.app-footer__row[b-nvcek88s6m] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.app-footer__note[b-nvcek88s6m] {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--hugsa-ink-faint);
}

.app-footer__title[b-nvcek88s6m] {
    font-weight: 600;
    color: var(--hugsa-ink);
}

.app-footer__state[b-nvcek88s6m] {
    margin-top: 0.75rem;
}

.app-footer__chip[b-nvcek88s6m] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border: 1px solid;
    border-radius: var(--hugsa-radius-pill);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.app-footer__chip--draft[b-nvcek88s6m] {
    background: var(--hugsa-amber-soft);
    border-color: #efd2ad;
    color: var(--hugsa-amber-deep);
}

.app-footer__chip--ok[b-nvcek88s6m] {
    background: var(--hugsa-moss-soft);
    border-color: #c9dfc7;
    color: var(--hugsa-moss-deep);
}

/* Narrower screens: the destinations take a row of their own rather than squeezing
   in beside the brand and the account — which is where they stopped fitting, just
   under 1280px, not at a round breakpoint. Below 768px that row becomes a real menu
   button, so no destination is ever clipped or reachable only by a sideways scroll. */

@media (max-width: 1279.98px) {
    .app-header__nav[b-nvcek88s6m] {
        order: 3;
        flex-basis: 100%;
    }
}

@media (max-width: 767.98px) {
    .app-header__inner[b-nvcek88s6m] {
        gap: 0.5rem;
    }

    .app-header__nav[b-nvcek88s6m] {
        display: none;
    }

    .app-menu[b-nvcek88s6m] {
        display: flex;
        order: 3;
        flex-basis: auto;
    }

    .app-account[b-nvcek88s6m] {
        order: 4;
    }

    /* Touch: a full finger height on the menu button, and the label is clipped
       rather than removed so the button keeps an accessible name. */
    .app-menu__toggle[b-nvcek88s6m] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.45rem;
        min-width: 2.75rem;
        min-height: 2.75rem;
        padding: 0.3rem 0.6rem;
        border: 1px solid var(--hugsa-line-strong);
        border-radius: var(--hugsa-radius-sm);
        background: var(--hugsa-surface);
        color: var(--hugsa-ink-soft);
        cursor: pointer;
        list-style: none;
    }

    .app-menu__toggle[b-nvcek88s6m]::-webkit-details-marker {
        display: none;
    }

    .app-menu__toggle:hover[b-nvcek88s6m],
    .app-menu__toggle:focus-visible[b-nvcek88s6m],
    .app-menu[open] > .app-menu__toggle[b-nvcek88s6m] {
        border-color: var(--hugsa-sea);
        background: var(--hugsa-sea-soft);
        color: var(--hugsa-sea-deep);
    }

    .app-menu__bars[b-nvcek88s6m] {
        position: relative;
        display: block;
        width: 1.05rem;
        height: 2px;
        border-radius: 2px;
        background: currentColor;
    }

    .app-menu__bars[b-nvcek88s6m]::before,
    .app-menu__bars[b-nvcek88s6m]::after {
        content: "";
        position: absolute;
        inset-inline: 0;
        height: 2px;
        border-radius: 2px;
        background: currentColor;
    }

    .app-menu__bars[b-nvcek88s6m]::before {
        top: -6px;
    }

    .app-menu__bars[b-nvcek88s6m]::after {
        top: 6px;
    }

    /* An open panel is a list under the header; a closed one is not rendered at
       all. The :not([open]) rule is needed because the inline layout above sets a
       display value the browser would otherwise honour while closed. */
    .app-menu:not([open]) .app-menu__panel[b-nvcek88s6m] {
        display: none;
    }

    .app-menu__panel[b-nvcek88s6m] {
        position: absolute;
        inset-inline: 0;
        top: 100%;
        z-index: 30;
        display: grid;
        gap: 0.1rem;
        padding: 0.4rem 0.75rem 0.85rem;
        border-bottom: 1px solid var(--hugsa-line);
        background: var(--hugsa-surface);
        box-shadow: var(--hugsa-shadow-2);
    }

    /* Development chrome shrinks to its diamond on a phone: the label stays in the
       markup, clipped, so the link still has an accessible name. */
    .app-header__demo-label[b-nvcek88s6m] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .app-header__demo[b-nvcek88s6m] {
        min-width: 2.75rem;
        min-height: 2.75rem;
        justify-content: center;
    }

    .app-brand__product[b-nvcek88s6m] {
        font-size: 0.625rem;
    }

    .app-account__who[b-nvcek88s6m] {
        max-width: 6.5rem;
    }

    .app-account__menu[b-nvcek88s6m] {
        min-width: 12rem;
    }

    .app-footer__row[b-nvcek88s6m] {
        align-items: flex-start;
        flex-direction: column;
    }

    .app-footer__state[b-nvcek88s6m] {
        margin-top: 0.25rem;
    }
}

/* Phones: the brand drops its product line so that the brand, the Demo Hub chip,
   the menu button and the account all fit on one row. The product name is still in
   the page title and in the footer, and a wrapped second row of chrome costs more
   than it explains. */

@media (max-width: 575.98px) {
    .app-brand__product[b-nvcek88s6m] {
        display: none;
    }

    .app-account__who[b-nvcek88s6m] {
        max-width: 5.5rem;
    }

    .app-account__role[b-nvcek88s6m] {
        font-size: 0.5625rem;
    }
}
/* /Components/Layout/MainNav.razor.rz.scp.css */
/* Administrator navigation. Grouped so the work surfaces (overview, content,
   translation, suggestions) and the people/settings surfaces read as two things
   rather than six equal links, and so a phone can show the same order as a list.
   The active link is a filled pill — the only permanent indicator of where you
   are. */

.app-nav[b-ek2brgu3ba] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}

.app-nav__group[b-ek2brgu3ba] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.app-nav__group + .app-nav__group[b-ek2brgu3ba] {
    margin-inline-start: 0.3rem;
    padding-inline-start: 0.65rem;
    border-inline-start: 1px solid var(--hugsa-line);
}

.app-nav__link[b-ek2brgu3ba] {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.35rem 0.85rem;
    border-radius: var(--hugsa-radius-pill);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--hugsa-ink-soft);
    white-space: nowrap;
}

.app-nav__link:hover[b-ek2brgu3ba],
.app-nav__link:focus-visible[b-ek2brgu3ba] {
    background: var(--hugsa-sea-soft);
    color: var(--hugsa-sea-deep);
}

.app-nav__link--active[b-ek2brgu3ba],
.app-nav__link--active:hover[b-ek2brgu3ba],
.app-nav__link--active:focus-visible[b-ek2brgu3ba] {
    background: var(--hugsa-sea);
    color: #fff;
}

/* Phones: the same destinations, stacked in the menu panel, at a finger height.
   The header-row instance is hidden by the layout, so only this one is on screen
   and the two rules cannot fight. */

@media (max-width: 767.98px) {
    .app-nav[b-ek2brgu3ba],
    .app-nav__group[b-ek2brgu3ba] {
        display: grid;
        gap: 0.1rem;
        width: 100%;
    }

    .app-nav__group + .app-nav__group[b-ek2brgu3ba] {
        margin: 0.4rem 0 0;
        padding: 0.4rem 0 0;
        border-inline-start: 0;
        border-top: 1px solid var(--hugsa-line);
    }

    .app-nav__link[b-ek2brgu3ba] {
        min-height: 2.75rem;
        padding: 0.55rem 0.7rem;
        border-radius: var(--hugsa-radius-sm);
        font-size: 0.9375rem;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-mgo2vydigy],
.components-reconnect-repeated-attempt-visible[b-mgo2vydigy],
.components-reconnect-failed-visible[b-mgo2vydigy],
.components-pause-visible[b-mgo2vydigy],
.components-resume-failed-visible[b-mgo2vydigy],
.components-rejoining-animation[b-mgo2vydigy] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-retrying[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-failed[b-mgo2vydigy],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-mgo2vydigy] {
    display: block;
}


#components-reconnect-modal[b-mgo2vydigy] {
    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-mgo2vydigy 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-mgo2vydigy 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-mgo2vydigy 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-mgo2vydigy]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-mgo2vydigy 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-mgo2vydigy {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-mgo2vydigy {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-mgo2vydigy {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-mgo2vydigy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-mgo2vydigy] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-mgo2vydigy] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-mgo2vydigy] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-mgo2vydigy] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-mgo2vydigy] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-mgo2vydigy] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-mgo2vydigy 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-mgo2vydigy] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-mgo2vydigy {
    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/Dev/DemoHub.razor.rz.scp.css */
/* The Demo Hub is a development tool, so it may look like one — but it is shown
   to customers on a projector, so it uses the product's own palette and type
   rather than a debug page's grey boxes. Everything here is scoped to the page. */

.demo-hub[b-29l12eu7q4] {
    max-width: var(--hugsa-page);
    margin-inline: auto;
    padding-block: 1.5rem 3rem;
}

/* Hero ------------------------------------------------------------------- */

.demo-hero[b-29l12eu7q4] {
    padding: clamp(1.25rem, 4vw, 2.25rem);
    margin-bottom: 1.5rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    background:
        radial-gradient(120% 140% at 100% 0%, var(--hugsa-sea-soft) 0%, transparent 55%),
        radial-gradient(90% 120% at 0% 0%, var(--hugsa-amber-soft) 0%, transparent 50%),
        var(--hugsa-surface);
    box-shadow: var(--hugsa-shadow-2);
}

.demo-hero__eyebrow[b-29l12eu7q4] {
    margin-bottom: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--hugsa-amber-deep);
}

.demo-hero__title[b-29l12eu7q4] {
    margin-bottom: 0.5rem;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-5);
    line-height: 1.05;
    color: var(--hugsa-ink);
}

.demo-hero__lead[b-29l12eu7q4] {
    max-width: var(--hugsa-measure);
    margin-bottom: 1.25rem;
    font-size: var(--hugsa-step-1);
    color: var(--hugsa-ink-soft);
}

/* Start-here strip ------------------------------------------------------- */

.demo-start[b-29l12eu7q4] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
    margin-bottom: 1.25rem;
}

.demo-start__item[b-29l12eu7q4] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius);
    background: rgba(255, 255, 255, .78);
    color: var(--hugsa-ink);
    text-decoration: none;
}

.demo-start__item:hover[b-29l12eu7q4],
.demo-start__item:focus-visible[b-29l12eu7q4] {
    border-color: var(--hugsa-sea);
    color: var(--hugsa-sea-deep);
}

.demo-start__num[b-29l12eu7q4] {
    flex: none;
    display: grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--hugsa-sea-soft);
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--hugsa-sea-deep);
}

.demo-start__body[b-29l12eu7q4] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.demo-start__title[b-29l12eu7q4] {
    font-weight: 700;
    line-height: 1.2;
}

.demo-start__desc[b-29l12eu7q4] {
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

@media (max-width: 767.98px) {
    .demo-start[b-29l12eu7q4] {
        grid-template-columns: 1fr;
    }
}

/* Current session -------------------------------------------------------- */

.demo-session[b-29l12eu7q4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius);
    background: rgba(255, 255, 255, .72);
}

.demo-session__who[b-29l12eu7q4] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    min-width: 0;
}

.demo-session__label[b-29l12eu7q4] {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.demo-session__name[b-29l12eu7q4] {
    font-weight: 700;
    color: var(--hugsa-ink);
    overflow-wrap: anywhere;
}

.demo-session__name--none[b-29l12eu7q4] {
    font-weight: 600;
    color: var(--hugsa-ink-faint);
}

.demo-session__role[b-29l12eu7q4] {
    padding: 0.15rem 0.55rem;
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-sea-soft);
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--hugsa-sea-deep);
}

.demo-session__out[b-29l12eu7q4] {
    margin-inline-start: auto;
}

.demo-session__note[b-29l12eu7q4] {
    margin: 0.75rem 0 0;
    padding-inline-start: 0.9rem;
    border-inline-start: 3px solid var(--hugsa-amber);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

/* Persona sections ------------------------------------------------------- */

.demo-persona[b-29l12eu7q4] {
    padding: clamp(1.1rem, 3vw, 1.75rem);
    margin-bottom: 1.25rem;
    border: 1px solid var(--hugsa-line);
    border-top: 4px solid var(--hugsa-accent);
    border-radius: var(--hugsa-radius-lg);
    background: var(--hugsa-surface);
    box-shadow: var(--hugsa-shadow-1);
}

.demo-persona__head[b-29l12eu7q4] {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    margin-bottom: 1.1rem;
}

.demo-persona__badge[b-29l12eu7q4] {
    flex: none;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-accent-soft);
    font-family: var(--hugsa-font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--hugsa-accent-deep);
}

.demo-persona__title[b-29l12eu7q4] {
    margin: 0 0 0.25rem;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-2);
    line-height: 1.15;
    color: var(--hugsa-ink);
}

.demo-persona__summary[b-29l12eu7q4] {
    margin: 0;
    max-width: var(--hugsa-measure);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.demo-persona code[b-29l12eu7q4],
.demo-footer code[b-29l12eu7q4],
.demo-card code[b-29l12eu7q4] {
    padding: 0.1rem 0.35rem;
    border-radius: 0.35rem;
    background: var(--hugsa-cream-deep);
    font-size: 0.85em;
    color: var(--hugsa-ink);
    overflow-wrap: anywhere;
}

/* Cards ------------------------------------------------------------------ */

.demo-grid[b-29l12eu7q4] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.9rem;
}

@media (min-width: 768px) {
    .demo-grid[b-29l12eu7q4] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.demo-card[b-29l12eu7q4] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-cream);
}

.demo-card--muted[b-29l12eu7q4] {
    background: var(--hugsa-cream-deep);
    color: var(--hugsa-ink-faint);
}

.demo-card__title[b-29l12eu7q4] {
    margin: 0;
    font-size: var(--hugsa-step-0);
    font-weight: 700;
    color: var(--hugsa-ink);
}

.demo-card__text[b-29l12eu7q4] {
    margin: 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.demo-card__hint[b-29l12eu7q4] {
    margin: 0;
    font-size: 0.75rem;
    color: var(--hugsa-ink-faint);
}

.demo-form[b-29l12eu7q4] {
    display: grid;
    gap: 0.65rem;
}

.demo-form .form-label[b-29l12eu7q4] {
    margin-bottom: 0.2rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hugsa-ink-soft);
}

.demo-demo-what[b-29l12eu7q4] {
    margin: 1rem 0 0;
    padding: 0.65rem 0.85rem;
    border-radius: var(--hugsa-radius-sm);
    background: var(--hugsa-accent-soft);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-accent-deep);
}

/* Administrator personas, grouped by organization ------------------------ */

.demo-orgs[b-29l12eu7q4] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.9rem;
}

@media (min-width: 768px) {
    .demo-orgs[b-29l12eu7q4] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.demo-org[b-29l12eu7q4] {
    padding: 0.9rem 1rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-cream);
}

.demo-org__head[b-29l12eu7q4] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.demo-org__name[b-29l12eu7q4] {
    margin: 0;
    font-size: var(--hugsa-step-0);
    font-weight: 700;
    color: var(--hugsa-ink);
}

.demo-org__code[b-29l12eu7q4] {
    font-family: var(--hugsa-font);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.demo-org__meta[b-29l12eu7q4] {
    margin: 0.2rem 0 0.75rem;
    font-size: 0.75rem;
    color: var(--hugsa-ink-faint);
}

.demo-admins[b-29l12eu7q4] {
    display: grid;
    gap: 0.6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.demo-admin[b-29l12eu7q4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-sm);
    background: var(--hugsa-surface);
}

.demo-admin__who[b-29l12eu7q4] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.demo-admin__name[b-29l12eu7q4] {
    font-weight: 700;
    color: var(--hugsa-ink);
    overflow-wrap: anywhere;
}

.demo-admin__email[b-29l12eu7q4] {
    font-size: 0.75rem;
    color: var(--hugsa-ink-faint);
    overflow-wrap: anywhere;
}

.demo-admin__badges[b-29l12eu7q4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.15rem;
}

.demo-admin .btn[b-29l12eu7q4] {
    flex: none;
}

.demo-chip[b-29l12eu7q4] {
    padding: 0.1rem 0.5rem;
    border: 1px solid var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-cream);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hugsa-ink-soft);
}

.demo-chip--owner[b-29l12eu7q4] {
    border-color: #efd2ad;
    background: var(--hugsa-amber-soft);
    color: var(--hugsa-amber-deep);
}

.demo-chip--safety[b-29l12eu7q4] {
    border-color: #e5bccb;
    background: var(--hugsa-rose-soft);
    color: var(--hugsa-rose-deep);
}

.demo-chip--review[b-29l12eu7q4] {
    border-color: #c9dfc7;
    background: var(--hugsa-moss-soft);
    color: var(--hugsa-moss-deep);
}

.demo-chip--none[b-29l12eu7q4] {
    background: var(--hugsa-cream-deep);
    color: var(--hugsa-ink-faint);
}

.demo-chip--new[b-29l12eu7q4] {
    border-style: dashed;
    background: transparent;
    color: var(--hugsa-ink-faint);
}

/* Platform administrators ------------------------------------------------- */

.demo-platform-list[b-29l12eu7q4] {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.demo-platform-list li[b-29l12eu7q4] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-sm);
    background: var(--hugsa-surface);
}

.demo-empty[b-29l12eu7q4] {
    margin: 0;
    padding: 0.9rem 1rem;
    border: 1px dashed var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

/* Footer ----------------------------------------------------------------- */

.demo-footer[b-29l12eu7q4] {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--hugsa-line);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.demo-devs summary[b-29l12eu7q4] {
    cursor: pointer;
    font-weight: 600;
    color: var(--hugsa-ink-soft);
}

/* On a phone the disclosure is a tap target, so it needs more than a text line. */
@media (max-width: 767.98px) {
    .demo-devs summary[b-29l12eu7q4] {
        padding-block: 0.5rem;
    }

    .demo-footer a[b-29l12eu7q4] {
        display: inline-block;
        padding-block: 0.35rem;
    }
}

.demo-devs__body[b-29l12eu7q4] {
    margin-top: 0.5rem;
    padding: 0.75rem 0.9rem;
    border: 1px dashed var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius);
    background: rgba(255, 255, 255, .6);
}

.demo-devs__body code[b-29l12eu7q4] {
    margin-bottom: 0.35rem;
    overflow-wrap: anywhere;
}

/* Refusal ---------------------------------------------------------------- */

.demo-refusal[b-29l12eu7q4] {
    padding: 3rem 1.5rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    background: var(--hugsa-surface);
    text-align: center;
    color: var(--hugsa-ink-soft);
}

.demo-refusal__title[b-29l12eu7q4] {
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-5);
    color: var(--hugsa-ink);
}
/* /Components/Pages/Learn.razor.rz.scp.css */
.exercise[b-8pvxxz0pzw] {
    width: 100%;
    max-width: 44rem;
    margin-inline: auto;
    padding-top: 1.5rem;
}

.exercise__head[b-8pvxxz0pzw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.exercise__back[b-8pvxxz0pzw] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--hugsa-step--1);
    font-weight: 600;
    text-decoration: none;
    color: var(--hugsa-ink-soft);
}

.exercise__back:hover[b-8pvxxz0pzw],
.exercise__back:focus-visible[b-8pvxxz0pzw] {
    color: var(--hugsa-sea-deep);
}

.exercise__back-arrow[b-8pvxxz0pzw] {
    font-size: 1.05em;
    line-height: 1;
}

.exercise__badge[b-8pvxxz0pzw] {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.8rem;
    border: 1px solid var(--hugsa-accent);
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-accent-soft);
    color: var(--hugsa-accent-deep);
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-1);
    font-weight: 700;
}

/* Result of the question just answered ----------------------------------- */

.result[b-8pvxxz0pzw] {
    padding: 1.1rem 1.25rem 1.25rem;
    margin-bottom: 1.25rem;
    border: 1px solid;
    border-radius: var(--hugsa-radius-lg);
    box-shadow: var(--hugsa-shadow-1);
}

.result--good[b-8pvxxz0pzw] {
    background: var(--hugsa-moss-soft);
    border-color: #c9dfc7;
}

.result--again[b-8pvxxz0pzw] {
    background: var(--hugsa-amber-soft);
    border-color: #efd2ad;
}

.result__headline[b-8pvxxz0pzw] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
    font-size: var(--hugsa-step-2);
    font-weight: 700;
    line-height: 1.2;
}

.result--good .result__headline[b-8pvxxz0pzw] {
    color: var(--hugsa-moss-deep);
}

.result--again .result__headline[b-8pvxxz0pzw] {
    color: var(--hugsa-amber-deep);
}

.result__icon[b-8pvxxz0pzw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    flex: none;
    border-radius: 50%;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1;
}

.result--good .result__icon[b-8pvxxz0pzw] {
    background: var(--hugsa-moss);
    color: #fff;
}

.result--again .result__icon[b-8pvxxz0pzw] {
    background: var(--hugsa-amber);
    color: #fff;
}

.result__why[b-8pvxxz0pzw] {
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(20, 41, 59, .12);
}

.result__why-label[b-8pvxxz0pzw] {
    margin: 0 0 0.15rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.result__why-text[b-8pvxxz0pzw] {
    margin: 0;
    font-size: var(--hugsa-step--1);
    line-height: 1.55;
    color: var(--hugsa-ink);
}

.result__next[b-8pvxxz0pzw] {
    margin: 0.85rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

/* Question --------------------------------------------------------------- */

.question[b-8pvxxz0pzw] {
    padding: 1.15rem 1.35rem 1.5rem;
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    box-shadow: var(--hugsa-shadow-2);
}

.question__rail[b-8pvxxz0pzw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-bottom: 0.9rem;
    margin-bottom: 1.1rem;
    border-bottom: 1px solid var(--hugsa-line);
}

.question__rail-text[b-8pvxxz0pzw] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.question__dots[b-8pvxxz0pzw] {
    display: flex;
    gap: 0.3rem;
}

.question__dot[b-8pvxxz0pzw] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--hugsa-line-strong);
}

.question__dot--done[b-8pvxxz0pzw] {
    background: var(--hugsa-sea);
}

.question__situation[b-8pvxxz0pzw] {
    margin-bottom: 1rem;
    font-size: var(--hugsa-step-1);
    line-height: 1.55;
    color: var(--hugsa-ink);
}

.hear[b-8pvxxz0pzw] {
    padding: 1rem 1.15rem 1.1rem;
    margin-bottom: 1.15rem;
    border: 1px solid var(--hugsa-line);
    border-left: 4px solid var(--hugsa-sea);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-cream);
}

.hear__label[b-8pvxxz0pzw] {
    margin: 0 0 0.3rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.hear__text[b-8pvxxz0pzw] {
    margin: 0;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-3);
    font-weight: 700;
    line-height: 1.2;
    color: var(--hugsa-sea-deep);
}

.hear__hint[b-8pvxxz0pzw] {
    margin: 0.3rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.question__prompt[b-8pvxxz0pzw] {
    margin-bottom: 0.9rem;
    font-size: var(--hugsa-step-1);
    font-weight: 600;
    line-height: 1.45;
}

.choices[b-8pvxxz0pzw] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.choice[b-8pvxxz0pzw] {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    width: 100%;
    padding: 0.85rem 1rem;
    text-align: left;
    color: var(--hugsa-ink);
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius);
    transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
}

.choice:hover[b-8pvxxz0pzw] {
    border-color: var(--hugsa-sea);
    background: var(--hugsa-sea-soft);
    transform: translateY(-1px);
}

.choice:focus-visible[b-8pvxxz0pzw] {
    border-color: var(--hugsa-sea);
    outline: none;
    box-shadow: var(--hugsa-ring);
}

.choice__letter[b-8pvxxz0pzw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    flex: none;
    border-radius: 50%;
    background: var(--hugsa-cream-deep);
    color: var(--hugsa-ink-soft);
    font-size: 0.8125rem;
    font-weight: 700;
}

.choice:hover .choice__letter[b-8pvxxz0pzw] {
    background: var(--hugsa-sea);
    color: #fff;
}

.choice__body[b-8pvxxz0pzw] {
    display: block;
    flex: 1;
}

.choice__text[b-8pvxxz0pzw] {
    display: block;
    font-size: var(--hugsa-step-1);
    font-weight: 600;
    line-height: 1.4;
}

.choice__sub[b-8pvxxz0pzw] {
    display: block;
    margin-top: 0.1rem;
    font-size: var(--hugsa-step--1);
    line-height: 1.45;
    color: var(--hugsa-ink-soft);
}

/* The choices again, after the answer ------------------------------------ */

/* Read-only and marked: the meaning of every line is revealed here, which is
   what turns a wrong option into something learned rather than something
   crossed out. */
.choices--revealed[b-8pvxxz0pzw] {
    margin-bottom: 1rem;
}

.choice--static[b-8pvxxz0pzw] {
    cursor: default;
}

.choice--static:hover[b-8pvxxz0pzw] {
    border-color: var(--hugsa-line-strong);
    background: var(--hugsa-surface);
    transform: none;
}

.choice--correct[b-8pvxxz0pzw],
.choice--correct:hover[b-8pvxxz0pzw] {
    border-color: #c9dfc7;
    background: var(--hugsa-moss-soft);
}

.choice--picked[b-8pvxxz0pzw],
.choice--picked:hover[b-8pvxxz0pzw] {
    border-color: #efd2ad;
    background: var(--hugsa-amber-soft);
}

.choice--correct .choice__letter[b-8pvxxz0pzw],
.choice--correct:hover .choice__letter[b-8pvxxz0pzw] {
    background: var(--hugsa-moss);
    color: #fff;
}

.choice--picked .choice__letter[b-8pvxxz0pzw],
.choice--picked:hover .choice__letter[b-8pvxxz0pzw] {
    background: var(--hugsa-amber);
    color: #fff;
}

.choice--static:not(.choice--correct):not(.choice--picked):hover .choice__letter[b-8pvxxz0pzw] {
    background: var(--hugsa-cream-deep);
    color: var(--hugsa-ink-soft);
}

.choice__flag[b-8pvxxz0pzw] {
    flex: none;
    align-self: center;
    padding: 0.2rem 0.55rem;
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-moss);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
}

.choice__flag--picked[b-8pvxxz0pzw] {
    background: var(--hugsa-amber);
}

/* The badge is an annotation on the line, so it never takes the room the line
   needs. Below the tablet breakpoint it leaves the row and sits under the text
   it labels, still indented to the text column. A Faroese sentence squeezed
   into the width a badge leaves over wraps after two or three words, and
   reading that sentence is the whole point of the screen. */
@media (max-width: 767.98px) {
    .choice--static[b-8pvxxz0pzw] {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "letter body"
            ". flag";
        align-items: start;
        row-gap: 0.45rem;
    }

    .choice--static .choice__letter[b-8pvxxz0pzw] {
        grid-area: letter;
    }

    .choice--static .choice__body[b-8pvxxz0pzw] {
        grid-area: body;
    }

    .choice--static .choice__flag[b-8pvxxz0pzw] {
        grid-area: flag;
        justify-self: start;
        align-self: start;
        text-align: left;
    }
}

/* Sentence building ------------------------------------------------------- */

/* The answer line is a place, not a list: it keeps its height when empty so the
   chips do not jump the page around as the learner places the first word, and
   the dashed edge says "something goes here" without a paragraph explaining it. */
.build[b-8pvxxz0pzw] {
    display: block;
}

.build__label[b-8pvxxz0pzw] {
    margin: 0 0 0.35rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.build__line[b-8pvxxz0pzw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    min-height: 4.25rem;
    margin: 0 0 0.5rem;
    padding: 0.7rem 0.75rem;
    list-style: none;
    border: 1.5px dashed var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-cream);
}

.build__line--empty[b-8pvxxz0pzw] {
    justify-content: center;
}

.build__placeholder[b-8pvxxz0pzw] {
    font-size: var(--hugsa-step-2);
    line-height: 1;
    color: var(--hugsa-ink-faint);
}

.build__slot[b-8pvxxz0pzw] {
    display: inline-flex;
}

.build__status[b-8pvxxz0pzw] {
    margin: 0 0 1.15rem;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.build__bank[b-8pvxxz0pzw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 0.9rem;
    padding: 0;
    list-style: none;
}

/* 44px tall and never narrower than a thumb: the chips are the exercise, and a
   target that needs aiming turns a language task into a motor task. */
.chip[b-8pvxxz0pzw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.5rem 0.95rem;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-1);
    font-weight: 600;
    line-height: 1.2;
    color: var(--hugsa-ink);
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius-pill);
    box-shadow: var(--hugsa-shadow-1);
    transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
}

.chip:hover[b-8pvxxz0pzw] {
    border-color: var(--hugsa-sea);
    background: var(--hugsa-sea-soft);
    transform: translateY(-1px);
}

.chip:focus-visible[b-8pvxxz0pzw] {
    border-color: var(--hugsa-sea);
    outline: none;
    box-shadow: var(--hugsa-ring);
}

.chip--placed[b-8pvxxz0pzw] {
    color: #fff;
    background: var(--hugsa-sea);
    border-color: var(--hugsa-sea);
}

.chip--placed:hover[b-8pvxxz0pzw] {
    background: var(--hugsa-sea-deep);
    border-color: var(--hugsa-sea-deep);
    color: #fff;
}

.build__hint[b-8pvxxz0pzw] {
    margin: 0 0 1rem;
    font-size: var(--hugsa-step--1);
    line-height: 1.45;
    color: var(--hugsa-ink-soft);
}

/* The sentence is the exercise, so it gets the full width on a phone and wraps
   at word boundaries rather than being squeezed beside a label. */
@media (max-width: 767.98px) {
    .build__bank[b-8pvxxz0pzw] {
        gap: 0.5rem;
    }

    .chip[b-8pvxxz0pzw] {
        flex: 0 1 auto;
    }
}

/* The verdict on a built sentence ---------------------------------------- */

.sentences[b-8pvxxz0pzw] {
    display: grid;
    gap: 0.7rem;
    margin-bottom: 1rem;
}

.sentence[b-8pvxxz0pzw] {
    padding: 0.85rem 1rem;
    border: 1px solid var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-surface);
}

.sentence--again[b-8pvxxz0pzw] {
    border-color: #efd2ad;
    background: var(--hugsa-amber-soft);
}

.sentence--correct[b-8pvxxz0pzw] {
    border-color: #c9dfc7;
    background: var(--hugsa-moss-soft);
}

.sentence__label[b-8pvxxz0pzw] {
    margin: 0 0 0.25rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.sentence__text[b-8pvxxz0pzw] {
    margin: 0;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-2);
    font-weight: 700;
    line-height: 1.3;
    color: var(--hugsa-ink);
}

.sentence__gloss[b-8pvxxz0pzw] {
    margin: 0.3rem 0 0;
    font-size: var(--hugsa-step--1);
    line-height: 1.45;
    color: var(--hugsa-ink-soft);
}

/* Teaching card for new material ----------------------------------------- */

/* Deliberately the same card as a question, with the same rail, so a session
   reads as one continuous thing rather than as two different screens. The
   accents are calmer: nothing here is being graded. */
.teach[b-8pvxxz0pzw] {
    padding: 1.15rem 1.35rem 1.5rem;
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    box-shadow: var(--hugsa-shadow-2);
}

.teach__title[b-8pvxxz0pzw] {
    margin-bottom: 1rem;
    font-size: var(--hugsa-step-2);
    font-weight: 700;
    line-height: 1.3;
}

.teach__block[b-8pvxxz0pzw] {
    padding: 0.9rem 1.1rem 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-cream);
}

.teach__block--target[b-8pvxxz0pzw] {
    border-left: 4px solid var(--hugsa-sea);
}

.teach__label[b-8pvxxz0pzw] {
    margin: 0 0 0.25rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
}

.teach__faroese[b-8pvxxz0pzw] {
    margin: 0;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-3);
    font-weight: 700;
    line-height: 1.2;
    color: var(--hugsa-sea-deep);
}

.teach__hint[b-8pvxxz0pzw] {
    margin: 0.3rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.teach__meaning[b-8pvxxz0pzw] {
    margin: 0.15rem 0 0;
    font-size: var(--hugsa-step-1);
    font-weight: 600;
    line-height: 1.4;
    color: var(--hugsa-ink);
}

.teach__note[b-8pvxxz0pzw] {
    margin-bottom: 1.15rem;
}

.teach__note-text[b-8pvxxz0pzw] {
    margin: 0;
    font-size: var(--hugsa-step--1);
    line-height: 1.55;
    color: var(--hugsa-ink-soft);
}

.teach__start[b-8pvxxz0pzw] {
    display: block;
    margin-top: 1.25rem;
}

/* Moving on from the verdict --------------------------------------------- */

/* The only way forward once an answer is settled, so it reads as the end of
   the card rather than as one more choice among several. */
.advance[b-8pvxxz0pzw] {
    display: block;
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
}

/* Nothing due, and the end of a session ---------------------------------- */

.finish[b-8pvxxz0pzw] {
    padding: 1.75rem 1.5rem 1.5rem;
    text-align: center;
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    box-shadow: var(--hugsa-shadow-2);
}

.finish__icon[b-8pvxxz0pzw] {
    margin-bottom: 0.5rem;
    font-size: 2.5rem;
    line-height: 1;
}

.finish__title[b-8pvxxz0pzw] {
    font-size: var(--hugsa-step-2);
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.75rem;
}

.finish__score[b-8pvxxz0pzw] {
    margin-bottom: 0.5rem;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-3);
    font-weight: 700;
    color: var(--hugsa-sea-deep);
}

.finish__praise[b-8pvxxz0pzw] {
    max-width: 30rem;
    margin: 0 auto 1.5rem;
    font-size: var(--hugsa-step--1);
    line-height: 1.55;
    color: var(--hugsa-ink-soft);
}

.finish__progress[b-8pvxxz0pzw] {
    max-width: 26rem;
    margin: 0 auto 1.5rem;
}

.finish__bar[b-8pvxxz0pzw] {
    height: 0.6rem;
    background-color: var(--hugsa-cream-deep);
}

.finish__bar .progress-bar[b-8pvxxz0pzw] {
    background-image: linear-gradient(90deg, var(--hugsa-sea), #34a3b5);
}

.finish__progress-text[b-8pvxxz0pzw] {
    margin: 0.5rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.finish__progress-text strong[b-8pvxxz0pzw] {
    font-size: var(--hugsa-step-1);
    color: var(--hugsa-sea-deep);
}

.finish__progress-met[b-8pvxxz0pzw],
.finish__next[b-8pvxxz0pzw] {
    margin: 0.35rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.finish__next[b-8pvxxz0pzw] {
    margin: 0 auto 1.25rem;
    max-width: 26rem;
    font-weight: 600;
    color: var(--hugsa-sea-deep);
}

.finish__action[b-8pvxxz0pzw] {
    max-width: 26rem;
    margin-inline: auto;
}

.finish__link[b-8pvxxz0pzw] {
    display: inline-block;
    margin-top: 0.85rem;
    font-size: var(--hugsa-step--1);
    font-weight: 600;
    color: var(--hugsa-ink-soft);
}

.finish__link:hover[b-8pvxxz0pzw],
.finish__link:focus-visible[b-8pvxxz0pzw] {
    color: var(--hugsa-sea-deep);
}
/* /Components/Pages/LearnerHome.razor.rz.scp.css */
.home[b-wm4zs5axq4] {
    width: 100%;
    max-width: var(--hugsa-page);
    margin-inline: auto;
    padding-top: 1.75rem;
}

/* Hero ------------------------------------------------------------------- */

.home__hero[b-wm4zs5axq4] {
    margin-bottom: 1.75rem;
}

.home__greeting[b-wm4zs5axq4] {
    font-size: var(--hugsa-step-5);
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 0.5rem;
}

.home__wave[b-wm4zs5axq4] {
    display: inline-block;
    transform-origin: 70% 70%;
    animation: home-wave-b-wm4zs5axq4 2.5s ease-in-out infinite;
}

@keyframes home-wave-b-wm4zs5axq4 {
    0%, 60%, 100% { transform: rotate(0deg); }
    70%, 90% { transform: rotate(14deg); }
    80% { transform: rotate(-8deg); }
}

@media (prefers-reduced-motion: reduce) {
    .home__wave[b-wm4zs5axq4] { animation: none; }
}

.home__ask[b-wm4zs5axq4] {
    margin-bottom: 0;
    max-width: var(--hugsa-measure);
}

.home__ask-fo[b-wm4zs5axq4] {
    display: block;
    font-size: var(--hugsa-step-1);
    color: var(--hugsa-ink);
}

.home__ask-gloss[b-wm4zs5axq4] {
    display: block;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.home__provenance[b-wm4zs5axq4] {
    margin: 1rem 0 0;
    padding: 0.5rem 0.85rem;
    max-width: var(--hugsa-measure);
    border-left: 3px solid var(--hugsa-amber);
    border-radius: 0 var(--hugsa-radius-sm) var(--hugsa-radius-sm) 0;
    background: var(--hugsa-amber-soft);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-amber-deep);
}

/* Same shape as the provenance note, in the sea palette: a demo is a different
   kind of caveat from "this content is still a draft", and should not read as one. */
.home__demo[b-wm4zs5axq4] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 0.6rem;
    margin: 1rem 0 0;
    padding: 0.5rem 0.85rem;
    max-width: var(--hugsa-measure);
    border-left: 3px solid var(--hugsa-sea);
    border-radius: 0 var(--hugsa-radius-sm) var(--hugsa-radius-sm) 0;
    background: var(--hugsa-sea-soft);
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-sea-deep);
}

.home__demo-chip[b-wm4zs5axq4] {
    padding: 0.1rem 0.5rem;
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-sea);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.home__demo-text[b-wm4zs5axq4] {
    flex: 1 1 14rem;
    color: var(--hugsa-ink-soft);
}

/* Progress card ---------------------------------------------------------- */

.home__progress[b-wm4zs5axq4] {
    padding: 1.15rem 1.35rem 1.35rem;
    margin-bottom: 2.25rem;
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    box-shadow: var(--hugsa-shadow-1);
}

.home__progress-head[b-wm4zs5axq4] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 0.85rem;
}

.home__progress-title[b-wm4zs5axq4] {
    font-size: var(--hugsa-step-2);
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.home__progress-caption[b-wm4zs5axq4] {
    margin: 0.15rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.home__progress-count[b-wm4zs5axq4] {
    margin: 0;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-3);
    font-weight: 700;
    line-height: 1;
    color: var(--hugsa-ink-soft);
    white-space: nowrap;
}

.home__progress-count strong[b-wm4zs5axq4] {
    font-size: var(--hugsa-step-4);
    color: var(--hugsa-sea-deep);
}

.home__progress-slash[b-wm4zs5axq4] {
    margin-inline: 0.25rem;
    color: var(--hugsa-line-strong);
}

.home__bar[b-wm4zs5axq4] {
    height: 0.65rem;
    background-color: var(--hugsa-cream-deep);
}

.home__bar .progress-bar[b-wm4zs5axq4] {
    background-image: linear-gradient(90deg, var(--hugsa-sea), #34a3b5);
}

.home__progress-met[b-wm4zs5axq4] {
    margin: 0.5rem 0 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

.home__progress-foot[b-wm4zs5axq4] {
    margin-top: 1rem;
}

.home__review[b-wm4zs5axq4] {
    width: 100%;
}

@media (min-width: 576px) {
    .home__review[b-wm4zs5axq4] {
        width: auto;
    }
}

.home__rested[b-wm4zs5axq4] {
    margin: 0;
    font-size: var(--hugsa-step--1);
    color: var(--hugsa-ink-soft);
}

/* Paths ------------------------------------------------------------------ */

.home__paths-title[b-wm4zs5axq4] {
    font-size: var(--hugsa-step-3);
    font-weight: 700;
    margin-bottom: 1rem;
}

.home__paths-gloss[b-wm4zs5axq4] {
    display: block;
    font-size: var(--hugsa-step-0);
    font-weight: 500;
    color: var(--hugsa-ink-soft);
    margin-top: 0.15rem;
}

.path-card[b-wm4zs5axq4] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 0;
    overflow: hidden;
    text-align: left;
    color: inherit;
    background: var(--hugsa-surface);
    border: 1px solid var(--hugsa-line);
    border-radius: var(--hugsa-radius-lg);
    box-shadow: var(--hugsa-shadow-1);
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.path-card:hover[b-wm4zs5axq4],
.path-card:focus-visible[b-wm4zs5axq4] {
    transform: translateY(-4px);
    border-color: var(--hugsa-accent);
    box-shadow: var(--hugsa-shadow-3);
    outline: none;
}

.path-card:focus-visible[b-wm4zs5axq4] {
    box-shadow: 0 0 0 3px rgba(31, 122, 140, .38), var(--hugsa-shadow-3);
}

.path-card__art[b-wm4zs5axq4] {
    position: relative;
    display: block;
    background: var(--hugsa-accent-soft);
}

.path-card__image[b-wm4zs5axq4] {
    display: block;
    width: 100%;
    height: clamp(8.5rem, 26vw, 12rem);
    object-fit: cover;
}

.path-card__tally[b-wm4zs5axq4] {
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    padding: 0.2rem 0.6rem;
    border-radius: var(--hugsa-radius-pill);
    background: rgba(255, 255, 255, .94);
    color: var(--hugsa-accent-deep);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: 0 1px 4px rgba(20, 41, 59, .2);
}

.path-card__body[b-wm4zs5axq4] {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1rem 1.15rem 1.15rem;
    border-top: 4px solid var(--hugsa-accent);
}

.path-card__title[b-wm4zs5axq4] {
    display: block;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step-2);
    font-weight: 700;
    line-height: 1.2;
}

.path-card__promise[b-wm4zs5axq4] {
    display: block;
    margin-top: 0.15rem;
    font-family: var(--hugsa-font-display);
    font-size: var(--hugsa-step--1);
    font-style: italic;
    line-height: 1.35;
    color: var(--hugsa-accent-deep);
}

.path-card__subtitle[b-wm4zs5axq4] {
    display: block;
    margin-top: 0.35rem;
    font-size: var(--hugsa-step--1);
    line-height: 1.4;
    color: var(--hugsa-ink-faint);
}

.path-card__foot[b-wm4zs5axq4] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: auto;
    padding-top: 0.9rem;
}

.path-card__meta[b-wm4zs5axq4] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--hugsa-ink-faint);
    white-space: nowrap;
}

.path-card__track[b-wm4zs5axq4] {
    flex: 1;
    height: 0.375rem;
    min-width: 2rem;
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-cream-deep);
    overflow: hidden;
}

.path-card__fill[b-wm4zs5axq4] {
    display: block;
    height: 100%;
    border-radius: var(--hugsa-radius-pill);
    background: var(--hugsa-accent);
    transition: width .4s ease;
}
/* /Components/Pages/Org/Translations.razor.rz.scp.css */
/* ==========================================================================
   Translation workbench
   --------------------------------------------------------------------------
   Scoped to the translations page. Everything here is built from the tokens in
   app.css, so this screen is recognisably the same product as the learner
   pages: same sea, same cream, same radii and shadows. Nothing new is
   introduced except layout.
   ========================================================================== */

/* ------------------------------------------------------------------ overview */

.wb-overview .card[b-rm44mpxwtp] {
    border-color: var(--hugsa-line);
}

.wb-card--current[b-rm44mpxwtp] {
    border-color: var(--hugsa-sea);
    box-shadow: var(--hugsa-shadow-2);
}

/* ------------------------------------------------------------------- toolbar */

.wb-toolbar[b-rm44mpxwtp] {
    border-color: var(--hugsa-line);
    background: var(--hugsa-surface);
    position: sticky;
    top: 0.5rem;
    z-index: 3;
    box-shadow: var(--hugsa-shadow-1);
}

.wb-toolbar .form-label[b-rm44mpxwtp] {
    margin-bottom: 0.15rem;
    color: var(--hugsa-ink-soft);
}

/* ------------------------------------------------------- unsaved-work banner */

.wb-unsaved[b-rm44mpxwtp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--hugsa-amber);
    border-left-width: 0.4rem;
    border-radius: var(--hugsa-radius-sm);
    background: var(--hugsa-amber-soft);
    color: var(--hugsa-ink);
}

/* -------------------------------------------------------------------- editor */

.wb-editor[b-rm44mpxwtp] {
    border-color: var(--hugsa-sea);
    border-left-width: 0.4rem;
    box-shadow: var(--hugsa-shadow-2);
}

.wb-editor .card-header[b-rm44mpxwtp] {
    background: var(--hugsa-sea-soft);
    border-bottom-color: var(--hugsa-line);
}

.wb-source[b-rm44mpxwtp] {
    padding: 0.35rem 0.6rem;
    margin-bottom: 0.35rem;
    border: 1px dashed var(--hugsa-line-strong);
    border-radius: var(--hugsa-radius-sm);
    background: var(--hugsa-cream-deep);
    color: var(--hugsa-ink-soft);
    overflow-wrap: anywhere;
}

/* ----------------------------------------------------------------- the rows */

.wb-list[b-rm44mpxwtp] {
    border-radius: var(--hugsa-radius-sm);
    overflow: hidden;
}

.wb-row[b-rm44mpxwtp] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    border-color: var(--hugsa-line);
}

.wb-row__main[b-rm44mpxwtp] {
    flex: 1 1 18rem;
    min-width: 0;
}

.wb-row__title[b-rm44mpxwtp] {
    overflow-wrap: anywhere;
}

.wb-row__meta[b-rm44mpxwtp] {
    overflow-wrap: anywhere;
}

.wb-row__actions[b-rm44mpxwtp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

/* An item that has been edited and not saved, and the one being edited now, are
   told apart: one is amber (there is work in hand), the other is sea (this is
   where the cursor is). A single highlight for both would make "have I saved
   this?" unanswerable at a glance. */
.wb-row--dirty[b-rm44mpxwtp] {
    background: var(--hugsa-amber-soft);
}

.wb-row--editing[b-rm44mpxwtp] {
    background: var(--hugsa-sea-soft);
}

.wb-row--editing.wb-row--dirty[b-rm44mpxwtp] {
    background: linear-gradient(90deg, var(--hugsa-amber-soft) 0.4rem, var(--hugsa-sea-soft) 0.4rem);
}

/* ------------------------------------------------------- consequential action */

/* Hiding takes content away from a learner, so it is the only button on a row
   that is red. Ordinary saving is the blue one and never looks like this. */
.wb-row .btn-outline-danger[b-rm44mpxwtp] {
    border-color: var(--hugsa-rose);
    color: var(--hugsa-rose-deep);
}

.wb-row .btn-outline-danger:hover[b-rm44mpxwtp],
.wb-row .btn-outline-danger:focus-visible[b-rm44mpxwtp] {
    background: var(--hugsa-rose);
    border-color: var(--hugsa-rose);
    color: #fff;
}

/* ------------------------------------------------------------------ confirms */

.wb-scrim[b-rm44mpxwtp] {
    position: fixed;
    inset: 0;
    background: rgba(20, 41, 59, .45);
    z-index: 1040;
}

.wb-confirm[b-rm44mpxwtp] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(32rem, calc(100vw - 2rem));
    padding: 1.25rem;
    border-radius: var(--hugsa-radius);
    background: var(--hugsa-surface);
    box-shadow: var(--hugsa-shadow-3);
    z-index: 1041;
}

/* ------------------------------------------------------------------- mobile */

@media (max-width: 767.98px) {
    .wb-toolbar[b-rm44mpxwtp] {
        position: static;
    }

    .wb-row__actions[b-rm44mpxwtp] {
        width: 100%;
    }

    .wb-row__actions .btn[b-rm44mpxwtp] {
        flex: 1 1 auto;
    }

    .wb-unsaved[b-rm44mpxwtp] {
        align-items: stretch;
    }

    .wb-unsaved .btn-group[b-rm44mpxwtp] {
        width: 100%;
    }

    .wb-unsaved .btn-group .btn[b-rm44mpxwtp] {
        flex: 1 1 auto;
    }

    .wb-confirm[b-rm44mpxwtp] {
        top: auto;
        bottom: 0;
        left: 0;
        transform: none;
        width: 100%;
        border-radius: var(--hugsa-radius) var(--hugsa-radius) 0 0;
    }
}
