/* /Components/Account/Shared/AuthLayout.razor.rz.scp.css */
.auth-page[b-b9r6y2mhuv] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background-color: var(--ll-app-bg);
}

.auth-card[b-b9r6y2mhuv] {
    width: 100%;
    max-width: 400px;
    background-color: var(--ll-surface);
    border: 1px solid var(--ll-border);
    border-radius: var(--ll-radius-lg);
    padding: 2rem 2rem 1.75rem;
    box-shadow: var(--ll-shadow-md);
}

.auth-brand[b-b9r6y2mhuv] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    margin-bottom: 1.5rem;
}

.auth-brand-name[b-b9r6y2mhuv] {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--ll-ink);
}

.auth-brand-logo[b-b9r6y2mhuv] {
    max-height: 48px;
    max-width: 240px;
    object-fit: contain;
}

/* Default product logo on the login screen: full stacked logo on a white chip
   (keeps it legible on the dark theme card). */
.auth-brand-chip[b-b9r6y2mhuv] {
    background: #fff;
    border-radius: var(--ll-radius-lg);
    padding: 16px 20px;
    display: inline-block;
    line-height: 0;
}

.auth-brand-logo-full[b-b9r6y2mhuv] {
    display: block;
    width: 190px;
    max-width: 100%;
    height: auto;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-dy6pq8tats] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.sidebar[b-dy6pq8tats] {
    background-color: var(--ll-sidebar-bg);
    border-bottom: 1px solid var(--ll-sidebar-border);
}

.main-col[b-dy6pq8tats] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background-color: var(--ll-app-bg);
}

.top-row[b-dy6pq8tats] {
    flex: 0 0 auto;
    height: 3.75rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 1.5rem;
    background-color: var(--ll-topbar-bg);
    border-bottom: 1px solid var(--ll-topbar-border);
    position: sticky;
    top: 0;
    z-index: 10;
}

/* "← Organizations" back-to-portal button (super-admins only). margin-right:auto keeps the right-hand
   group pinned to the end while this sits on the left; absent when not shown, so nothing shifts. */
.top-row-back[b-dy6pq8tats] {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.7rem;
    border-radius: 7px;
    border: 1px solid var(--ll-topbar-border);
    color: var(--bs-body-color);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
}

.top-row-back:hover[b-dy6pq8tats] {
    background-color: var(--bs-tertiary-bg);
}

.top-row-right[b-dy6pq8tats] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-left: auto;
}

/* ---- Help / knowledge-base button (always available from any screen) ---- */
.top-row-help[b-dy6pq8tats] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border-radius: 7px;
    border: 1px solid var(--ll-topbar-border);
    color: var(--bs-body-color);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
}

.top-row-help:hover[b-dy6pq8tats] {
    background-color: var(--bs-tertiary-bg);
}

/* ---- Organization switcher: su estilo vive en OrgSwitcher.razor.css (el CSS aislado del padre
   no alcanza los elementos internos de un hijo, sólo su raíz). ---- */

.welcome[b-dy6pq8tats] {
    color: var(--bs-body-color);
    font-size: 0.92rem;
}

.welcome strong[b-dy6pq8tats] {
    font-weight: 600;
}

.content[b-dy6pq8tats] {
    flex: 1 1 auto;
    padding: 1.5rem;
}

/* ---- Phones: compact the top bar to a single row + tighten page padding ---- */
@media (max-width: 640px) {
    .top-row[b-dy6pq8tats] {
        padding: 0 0.75rem;
        gap: 0.4rem;
    }

    .top-row-right[b-dy6pq8tats] {
        gap: 0.4rem;
    }

    /* Icon-only chips (the text label is hidden by app.css) so nothing overflows. */
    .top-row-help[b-dy6pq8tats],
    .top-row-back[b-dy6pq8tats] {
        padding: 0.35rem 0.5rem;
    }

    .top-row-help .label-text[b-dy6pq8tats],
    .top-row-back .label-text[b-dy6pq8tats] {
        display: none;
    }

    .content[b-dy6pq8tats] {
        padding: 1rem;
    }
}

@media (min-width: 641px) {
    .page[b-dy6pq8tats] {
        flex-direction: row;
    }

    .sidebar[b-dy6pq8tats] {
        width: 260px;
        flex: 0 0 260px;
        height: 100vh;
        position: sticky;
        top: 0;
        display: flex;
        flex-direction: column;
        border-right: 1px solid var(--ll-sidebar-border);
        border-bottom: none;
    }

    .content[b-dy6pq8tats] {
        padding: 1.75rem 2rem;
    }
}

#blazor-error-ui[b-dy6pq8tats] {
    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-dy6pq8tats] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* El buscador de pantallas en la barra superior: se ve como un campo, no como un botón,
   porque es lo que es — y así se entiende que se escribe adentro sin tener que probarlo. */
.top-row-search[b-dy6pq8tats] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    height: 2rem;
    min-width: 13rem;
    padding: 0 .625rem;
    border: 1px solid var(--ll-border);
    border-radius: var(--ll-radius);
    background: var(--ll-surface-2);
    color: var(--ll-ink-muted);
    font: inherit;
    font-size: .8125rem;
    cursor: pointer;
    white-space: nowrap;
}

.top-row-search:hover[b-dy6pq8tats] {
    background: var(--ll-row-hover);
    color: var(--ll-ink);
}

.top-row-search kbd[b-dy6pq8tats] {
    margin-left: auto;
}

/* Cuando está el "← Organizations" del super-admin, el buscador va al lado. */
.top-row-back + .top-row-search[b-dy6pq8tats] {
    margin-left: 1rem;
}

@media (max-width: 640px) {
    .top-row-search[b-dy6pq8tats] {
        min-width: 0;
    }

    .top-row-search .label-text[b-dy6pq8tats] {
        display: none;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ---- Brand row ---- */
.sidebar-top[b-nj1ka8z5b1] {
    display: flex;
    align-items: center;
    height: 3.75rem;
    padding: 0 1rem;
    border-bottom: 1px solid var(--ll-sidebar-border);
}

.brand[b-nj1ka8z5b1] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    overflow: hidden;
    text-decoration: none;
    color: var(--ll-sidebar-strong);
    font-weight: 600;
    font-size: 1.15rem;
}

/* White chip so the product logo (white background) stays legible on the dark sidebar too. */
.brand-chip[b-nj1ka8z5b1] {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    background: #fff;
    border-radius: 7px;
    padding: 3px;
}

.brand-mark[b-nj1ka8z5b1] {
    flex: 0 0 auto;
    height: 1.7rem;
    width: 1.7rem;
    object-fit: contain;
    display: block;
}

.brand-logo[b-nj1ka8z5b1] {
    flex: 0 0 auto;
    height: 2rem;
    max-width: 130px;
    object-fit: contain;
}

.brand-name[b-nj1ka8z5b1] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Mobile hamburger (hidden on desktop). Uses a mask so it follows the theme colour. ---- */
.navbar-toggler[b-nj1ka8z5b1] {
    appearance: none;
    margin-left: auto;
    cursor: pointer;
    width: 2.6rem;
    height: 2.2rem;
    border-radius: 6px;
    border: 1px solid var(--ll-sidebar-border);
    background-color: var(--ll-sidebar-fg);
    -webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='black' stroke-width='1.5' stroke-linecap='round' d='M2.5 4.5h11M2.5 8h11M2.5 11.5h11'/%3e%3c/svg%3e") no-repeat center/1.4rem;
    mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='black' stroke-width='1.5' stroke-linecap='round' d='M2.5 4.5h11M2.5 8h11M2.5 11.5h11'/%3e%3c/svg%3e") no-repeat center/1.4rem;
}

/* ---- Super-admin "viewing this tenant" context banner ---- */
.org-context[b-nj1ka8z5b1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.75rem 0.75rem 0;
    padding: 0.5rem 0.7rem;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, #4f46e5 45%, transparent);
    background: color-mix(in srgb, #4f46e5 16%, transparent);
}

.org-context-label[b-nj1ka8z5b1] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    min-width: 0;
}

.org-context-eyebrow[b-nj1ka8z5b1] {
    font-size: 0.62rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ll-sidebar-fg);
    opacity: 0.8;
}

.org-context-name[b-nj1ka8z5b1] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ll-sidebar-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.org-context form[b-nj1ka8z5b1] {
    margin-left: auto;
}

.org-context-exit[b-nj1ka8z5b1] {
    appearance: none;
    cursor: pointer;
    border: 1px solid var(--ll-sidebar-border);
    background: transparent;
    color: var(--ll-sidebar-fg);
    border-radius: 6px;
    padding: 0.25rem 0.6rem;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

.org-context-exit:hover[b-nj1ka8z5b1] {
    background-color: var(--ll-sidebar-hover);
    color: var(--ll-sidebar-strong);
}

/* ---- Nav area ---- */
.nav-scrollable[b-nj1ka8z5b1] {
    display: none;
    flex-direction: column;
    padding: 0.75rem;
}

.nav-group-label[b-nj1ka8z5b1] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ll-ink-muted);
    padding: 1rem 0.625rem 0.375rem;
}

.nav[b-nj1ka8z5b1] {
    gap: 0.15rem;
}

.nav-item[b-nj1ka8z5b1]  .nav-link {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    height: 2.125rem;
    padding: 0 0.625rem;
    border-radius: var(--ll-radius);
    color: var(--ll-sidebar-fg);
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
    text-decoration: none;
}

.nav-item[b-nj1ka8z5b1]  .nav-link:hover {
    background-color: var(--ll-sidebar-hover);
    color: var(--ll-sidebar-strong);
}

/* La página actual se marca con el relleno suave de la marca y su color — no hace falta
   además una barra a la izquierda: dos señales para la misma cosa es ruido. */
.nav-item[b-nj1ka8z5b1]  a.active {
    background-color: var(--ll-sidebar-active-bg);
    color: var(--ll-sidebar-active-fg);
    font-weight: 500;
}

.nav-ico[b-nj1ka8z5b1] {
    flex: 0 0 auto;
    width: 1.05rem;
    height: 1.05rem;
}

/* ---- Collapsible group (Settings) ---- */
.nav-group-toggle[b-nj1ka8z5b1] {
    width: 100%;
    border: none;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

/* El chevron y el ícono del módulo ahora son SVG (Icon.razor), no emoji: un emoji lo dibuja
   el sistema operativo, así que el sidebar se veía distinto en cada máquina. */
.nav-chevron[b-nj1ka8z5b1] {
    display: inline-flex;
    font-size: 0.8rem;
    color: var(--ll-ink-subtle);
}

/* El ícono vive un tono por detrás del texto, y se enciende con el acento cuando el
   módulo es el actual. */
.nav-emoji[b-nj1ka8z5b1] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    font-size: 1rem;
    line-height: 1;
    color: var(--ll-ink-subtle);
}

.nav-item[b-nj1ka8z5b1]  .nav-link:hover .nav-emoji {
    color: var(--ll-sidebar-strong);
}

.nav-item[b-nj1ka8z5b1]  .nav-link.active .nav-emoji {
    color: var(--ll-sidebar-active-fg);
}

/* Los hijos del módulo abierto, agrupados por UNA guía vertical: se ve de un vistazo
   dónde empieza y dónde termina lo que cuelga del módulo. */
.nav-sub[b-nj1ka8z5b1] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.125rem 0 0.25rem 2.25rem;
}

.nav-sub[b-nj1ka8z5b1]::before {
    content: "";
    position: absolute;
    left: 1.125rem;
    top: 0.125rem;
    bottom: 0.375rem;
    border-left: 1px solid var(--ll-sidebar-border);
}

.nav-sub[b-nj1ka8z5b1]  .nav-sublink {
    height: 1.875rem;
    font-size: 0.8125rem;
    padding-left: 0.625rem;
}

/* Tercer nivel: la acción de "crear" que cuelga de una página. */
.nav-sub[b-nj1ka8z5b1]  .nav-create {
    height: 1.75rem;
    font-size: 0.8125rem;
    color: var(--ll-ink-subtle);
}

.nav-sub[b-nj1ka8z5b1]  .nav-create:hover {
    color: var(--ll-sidebar-strong);
}

/* El contador de una página (la bandeja con documentos esperando) a la derecha del
   renglón, como una pastilla discreta: informa sin competir con el nombre. */
.nav-item[b-nj1ka8z5b1]  .nav-link .badge,
.nav-sub[b-nj1ka8z5b1]  .nav-link .badge {
    margin-left: auto;
    font-weight: 500;
    font-size: 0.72rem;
    border-radius: var(--ll-radius-full);
    padding: 0.1rem 0.45rem;
}

/* ---- Footer (user + sign out / login + register) ---- */
.sidebar-footer[b-nj1ka8z5b1] {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--ll-sidebar-border);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.user-chip[b-nj1ka8z5b1] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.6rem;
    border-radius: 8px;
    text-decoration: none;
    color: var(--ll-sidebar-fg);
}

.user-chip:hover[b-nj1ka8z5b1] {
    background-color: var(--ll-sidebar-hover);
    color: var(--ll-sidebar-strong);
}

.user-avatar[b-nj1ka8z5b1] {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: var(--ll-accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
}

.user-name[b-nj1ka8z5b1] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.82rem;
}

.logout-form[b-nj1ka8z5b1] {
    margin: 0;
}

.footer-link[b-nj1ka8z5b1] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    height: 2.4rem;
    padding: 0 0.85rem;
    border: none;
    background: none;
    border-radius: 8px;
    color: var(--ll-sidebar-fg);
    font-size: 0.9rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}

.footer-link:hover[b-nj1ka8z5b1] {
    background-color: var(--ll-sidebar-hover);
    color: var(--ll-sidebar-strong);
}

/* ---- Responsive ---- */
/* Mobile: the drawer is revealed by the Blazor `open` class the hamburger toggles (a pure-CSS
   `:checked ~` sibling trick can't reach it — the toggler lives inside .sidebar-top). */
.nav-scrollable.open[b-nj1ka8z5b1] {
    display: flex;
    max-height: calc(100vh - 3.75rem);
    overflow-y: auto;
}

@media (min-width: 641px) {
    .navbar-toggler[b-nj1ka8z5b1] {
        display: none;
    }

    .nav-scrollable[b-nj1ka8z5b1] {
        display: flex;
        height: calc(100vh - 3.75rem);
        overflow-y: auto;
    }
}

/* ---- Un cliente argentino abierto ----
   El cambiador es el CONTEXTO, no un filtro: mientras está, todo lo que muestra el menú
   pertenece a ese cliente. Por eso va arriba de todo y se ve como un objeto y no como un
   renglón más — si se leyera como una opción del menú, cambiar de cliente parecería ir a
   otra pantalla en vez de rehacer la misma sobre otros libros. */
.ar-ctx[b-nj1ka8z5b1] {
    padding: 0.5rem 0.75rem 0.25rem;
}

.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-card {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--ll-border-strong);
    border-radius: var(--ll-radius);
    background-color: var(--ll-surface-2);
    color: var(--ll-ink);
    text-decoration: none;
}

.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-card:hover {
    border-color: var(--ll-accent);
}

.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-ini {
    flex: 0 0 auto;
    width: 1.625rem;
    height: 1.625rem;
    border-radius: var(--ll-radius-sm);
    background-color: var(--ll-accent);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 0.65rem;
    font-weight: 700;
}

.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-t {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* El nombre se recorta con puntos suspensivos: una razón social larga partida en dos
   renglones corre todo el menú hacia abajo cada vez que se cambia de cliente. */
.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-n {
    font-size: 0.8125rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-m {
    font-size: 0.6875rem;
    color: var(--ll-ink-subtle);
}

.ar-ctx[b-nj1ka8z5b1]  .ar-ctx-ico {
    flex: 0 0 auto;
    color: var(--ll-ink-subtle);
    display: inline-flex;
}

/* El rótulo de un bloque del cliente. Es un rótulo, no un renglón: no se puede hacer
   click y por eso no toma ni el alto ni el hover de un .nav-link. */
.nav-group-h[b-nj1ka8z5b1] {
    padding: 0.75rem 0.75rem 0.25rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ll-ink-subtle);
}
/* /Components/Layout/OrgSwitcher.razor.rz.scp.css */
/* Selector de organización de la barra superior.

   Vive ACÁ y no en MainLayout.razor.css a propósito: el CSS aislado de un componente alcanza la raíz de sus
   hijos, pero NO los elementos de adentro — así que las reglas de los <span> internos puestas en el padre
   no se aplican nunca, y eso no falla: simplemente el control sale sin estilo. */

.org-switch-link[b-jja1164kjl] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.25rem 0.65rem 0.25rem 0.55rem;
    border-radius: var(--ll-radius);
    border: 1px solid var(--ll-border-strong);
    background: var(--ll-surface);
    color: var(--bs-body-color);
    text-decoration: none;
    white-space: nowrap;
    box-shadow: var(--ll-shadow-sm);
}

/* Borde fuerte + sombra + rótulo, al revés del botón de Help que tiene al lado: hasta acá compartían
   borde, radio y peso, y dos controles iguales se leen como la misma clase de cosa. */
.org-switch-link:hover[b-jja1164kjl] {
    background-color: var(--ll-row-hover);
    border-color: var(--ll-accent);
}

.org-switch-ico[b-jja1164kjl] {
    display: inline-flex;
    flex: 0 0 auto;
    color: var(--ll-accent);
}

.org-switch-stack[b-jja1164kjl] {
    display: flex;
    flex-direction: column;
    min-width: 0;          /* deja que el nombre se recorte en vez de empujar el resto de la barra */
    line-height: 1.15;
    text-align: left;
}

.org-switch-cap[b-jja1164kjl] {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--ll-ink-subtle);
}

/* Un nombre largo no puede empujar al saludo fuera de la barra: se recorta con puntos suspensivos y el
   nombre entero queda en el title del enlace. */
.org-switch-val[b-jja1164kjl] {
    font-size: 0.86rem;
    font-weight: 650;
    max-width: 13rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 640px) {
    /* En el teléfono se cae el rótulo y queda el NOMBRE, que es el dato. Al revés —el ícono solo, que es
       lo que hacía antes— el control vuelve a no decir en cuál organización estás, que es justo lo que
       vino a arreglar. */
    .org-switch-link[b-jja1164kjl] {
        padding: 0.3rem 0.5rem;
    }

    .org-switch-cap[b-jja1164kjl] {
        display: none;
    }

    .org-switch-val[b-jja1164kjl] {
        max-width: 8.5rem;
        font-size: 0.82rem;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-6ndx83ri90],
.components-reconnect-repeated-attempt-visible[b-6ndx83ri90],
.components-reconnect-failed-visible[b-6ndx83ri90],
.components-pause-visible[b-6ndx83ri90],
.components-resume-failed-visible[b-6ndx83ri90],
.components-rejoining-animation[b-6ndx83ri90] {
    display: none;
}

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


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

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

}

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

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

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

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

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

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

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

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

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

@keyframes components-rejoining-animation-b-6ndx83ri90 {
    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/AdminTicketDetail.razor.rz.scp.css */
.kb-body[b-6xil5bx54h]  p {
    margin: 0 0 .75rem;
}

.kb-body[b-6xil5bx54h]  p:last-child {
    margin-bottom: 0;
}

.ticket-thread[b-6xil5bx54h] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.ticket-msg[b-6xil5bx54h] {
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    padding: .7rem .9rem;
    background: var(--bs-body-bg);
}

.ticket-msg-staff[b-6xil5bx54h] {
    border-color: rgba(79, 70, 229, .35);
    background: rgba(79, 70, 229, .05);
}

.ticket-msg-meta[b-6xil5bx54h] {
    font-size: .82rem;
    margin-bottom: .35rem;
}
/* /Components/Pages/AdminTickets.razor.rz.scp.css */
.ll-search[b-v3tggg1geq] {
    min-width: 200px;
    max-width: 300px;
}

.ll-row[b-v3tggg1geq] {
    cursor: pointer;
}
/* /Components/Pages/CustomerDetail.razor.rz.scp.css */
.nav-tabs .nav-link[b-gqxe2fr378] {
    background: none;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    cursor: pointer;
    color: var(--bs-secondary-color);
}

.nav-tabs .nav-link:hover[b-gqxe2fr378] {
    color: var(--bs-body-color);
}

.nav-tabs .nav-link.active[b-gqxe2fr378] {
    color: var(--ll-accent);
    background: none;
}

.info-label[b-gqxe2fr378] {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bs-secondary-color);
    margin-bottom: .15rem;
}

.addr[b-gqxe2fr378] {
    white-space: pre-line;
}
/* /Components/Pages/Customers.razor.rz.scp.css */
.sortable[b-px2ovksi1k] {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.sortable:hover[b-px2ovksi1k] {
    color: var(--ll-accent);
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ===== Dashboard ===== Theme-adaptive: built on Bootstrap CSS vars so it works in dark + light. */

.tnum[b-f3yqph1h0p] { font-variant-numeric: tabular-nums; }

/* Header */
.dash-head[b-f3yqph1h0p] {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem;
}
.dash-head-actions[b-f3yqph1h0p] { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.syncchip[b-f3yqph1h0p] {
    display: inline-flex; align-items: center; gap: .45rem;
    border: 1px solid var(--bs-border-color); border-radius: 999px;
    padding: .35rem .7rem; font-size: .78rem; color: var(--bs-secondary-color);
    background: var(--bs-body-bg);
}
.sync-dot[b-f3yqph1h0p] { width: 7px; height: 7px; border-radius: 50%; background: var(--bs-success); box-shadow: 0 0 0 3px rgba(var(--bs-success-rgb), .18); }

/* Shared eyebrow + panels */
.dash-eyebrow[b-f3yqph1h0p] {
    font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--bs-secondary-color);
}
.dash-panel[b-f3yqph1h0p] {
    background: var(--bs-body-bg); border: 1px solid var(--bs-border-color);
    border-radius: 14px; box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 4px 16px rgba(0,0,0,.04);
}
.dash-panel-h[b-f3yqph1h0p] {
    display: flex; align-items: center; justify-content: space-between;
    padding: .85rem 1.1rem; border-bottom: 1px solid var(--bs-border-color);
}
.dash-panel-h h2[b-f3yqph1h0p] { font-size: .92rem; margin: 0; font-weight: 700; }
.dash-hint[b-f3yqph1h0p] { font-size: .72rem; color: var(--bs-secondary-color); }

/* ---- KPI strip ---- */
.kpi-strip[b-f3yqph1h0p] { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; margin-bottom: 1.1rem; }
.kpi-slot[b-f3yqph1h0p] { position: relative; min-width: 0; }
.kpi-slot.is-hidden[b-f3yqph1h0p] { opacity: .5; }
.kpi[b-f3yqph1h0p] {
    display: block; height: 100%; text-decoration: none; color: inherit;
    background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 14px;
    padding: 1rem 1rem .85rem; box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 4px 16px rgba(0,0,0,.04);
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
a.kpi:hover[b-f3yqph1h0p] { transform: translateY(-2px); border-color: var(--ll-accent); box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.kpi-top[b-f3yqph1h0p] { display: flex; align-items: center; justify-content: space-between; }
.kpi-eyebrow[b-f3yqph1h0p] { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-secondary-color); }
.kpi-ico[b-f3yqph1h0p] { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-size: 1.05rem; }
.kpi-val[b-f3yqph1h0p] { font-size: 1.6rem; font-weight: 750; letter-spacing: -.02em; margin: .5rem 0 .1rem; color: var(--bs-emphasis-color); line-height: 1.1; }
.kpi-meta[b-f3yqph1h0p] { font-size: .76rem; color: var(--bs-secondary-color); }
/* La separación va por CSS y no por un espacio en el markup: Razor se come el espacio
   que abre un bloque de markup dentro de un @if, y lo que se lee es «outstanding$112.496». */
.kpi-meta-strong[b-f3yqph1h0p] { margin-left: .3rem; }

.ico-recv[b-f3yqph1h0p] { background: rgba(79,70,229,.12); color: #5b52f0; }
.ico-pay[b-f3yqph1h0p]  { background: rgba(var(--bs-warning-rgb), .16); color: var(--bs-warning-text-emphasis, #b9770e); }
.ico-po[b-f3yqph1h0p]   { background: rgba(var(--bs-success-rgb), .14); color: var(--bs-success-text-emphasis, #0e9f6e); }
.ico-warn[b-f3yqph1h0p] { background: rgba(var(--bs-danger-rgb), .12); color: var(--bs-danger-text-emphasis, #dc2626); }

/* aging mini-bar */
.agebar[b-f3yqph1h0p] { display: flex; height: 6px; gap: 2px; border-radius: 5px; overflow: hidden; margin-top: .75rem; background: var(--bs-tertiary-bg); }
.agebar span[b-f3yqph1h0p] { display: block; height: 100%; border-radius: 2px; min-width: 0; }
.agelegend[b-f3yqph1h0p] { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .5rem; font-size: .64rem; color: var(--bs-secondary-color); }
.agelegend i[b-f3yqph1h0p] { width: 8px; height: 8px; border-radius: 3px; display: inline-block; margin-right: .25rem; vertical-align: middle; }
.seg-cur[b-f3yqph1h0p] { background: var(--bs-success); }
.seg-1[b-f3yqph1h0p]   { background: var(--bs-warning); }
.seg-2[b-f3yqph1h0p]   { background: #e8893a; }
.seg-3[b-f3yqph1h0p]   { background: var(--bs-danger); }
.seg-ok[b-f3yqph1h0p]  { background: var(--bs-success); opacity: .55; }

/* ---- Body: workspaces + activity ---- */
.dash-body[b-f3yqph1h0p] { display: grid; grid-template-columns: 1.55fr 1fr; gap: 1.1rem; align-items: start; }

/* Workspaces */
.ws-body[b-f3yqph1h0p] { padding: .35rem 1.1rem 1rem; }
.ws-group[b-f3yqph1h0p] { padding-top: .9rem; }
.ws-group > .dash-eyebrow[b-f3yqph1h0p] { display: block; margin-bottom: .55rem; }
.ws-cards[b-f3yqph1h0p] { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.ws-card[b-f3yqph1h0p] {
    position: relative; display: flex; gap: .7rem; padding: .7rem; text-decoration: none; color: inherit;
    border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-tertiary-bg);
    transition: border-color .12s ease, transform .12s ease, background .12s ease;
}
a.ws-card:hover[b-f3yqph1h0p] { border-color: var(--ll-accent); transform: translateY(-1px); background: var(--bs-body-bg); }
.ws-card.is-hidden[b-f3yqph1h0p] { opacity: .5; }
.ws-ico[b-f3yqph1h0p] { width: 34px; height: 34px; flex: 0 0 auto; border-radius: 9px; display: grid; place-items: center; font-size: 1.2rem; background: rgba(79,70,229,.12); }
.ws-meta[b-f3yqph1h0p] { min-width: 0; }
.ws-card h3[b-f3yqph1h0p] { font-size: .85rem; margin: 0 0 .1rem; font-weight: 650; color: var(--bs-emphasis-color); }
.ws-card p[b-f3yqph1h0p] { font-size: .72rem; color: var(--bs-secondary-color); margin: 0; line-height: 1.35; }

/* Activity timeline */
.act-panel[b-f3yqph1h0p] { align-self: stretch; }
.act-body[b-f3yqph1h0p] { padding: .25rem .25rem .4rem; }
.act-daygroup .act-day[b-f3yqph1h0p] { display: block; padding: .7rem 1.1rem .35rem; }
.act[b-f3yqph1h0p] { display: grid; grid-template-columns: 30px 1fr auto; gap: .6rem; padding: .5rem 1.1rem; }
.act:hover[b-f3yqph1h0p] { background: var(--bs-tertiary-bg); }
.act-rail[b-f3yqph1h0p] { position: relative; display: grid; place-items: center; }
.act-rail[b-f3yqph1h0p]::before { content: ""; position: absolute; top: -.5rem; bottom: -.5rem; width: 2px; background: var(--bs-border-color); }
.act-daygroup .act:first-of-type .act-rail[b-f3yqph1h0p]::before { top: 13px; }
.act-daygroup .act:last-of-type .act-rail[b-f3yqph1h0p]::before { bottom: auto; height: 13px; }
.act-pin[b-f3yqph1h0p] {
    width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; font-size: .9rem; z-index: 1;
    background: var(--bs-body-bg); border: 1px solid var(--bs-border-color);
}
.pin-sync[b-f3yqph1h0p], .pin-export[b-f3yqph1h0p] { background: rgba(79,70,229,.12); border-color: rgba(79,70,229,.25); }
.pin-create[b-f3yqph1h0p], .pin-pay[b-f3yqph1h0p] { background: rgba(var(--bs-success-rgb), .14); border-color: rgba(var(--bs-success-rgb), .3); }
.pin-edit[b-f3yqph1h0p] { background: rgba(var(--bs-warning-rgb), .16); border-color: rgba(var(--bs-warning-rgb), .3); }
.pin-void[b-f3yqph1h0p] { background: rgba(var(--bs-danger-rgb), .12); border-color: rgba(var(--bs-danger-rgb), .3); }
.pin-email[b-f3yqph1h0p] { background: var(--bs-tertiary-bg); }
.act-txt[b-f3yqph1h0p] { font-size: .82rem; min-width: 0; }
.act-head[b-f3yqph1h0p] { font-weight: 650; color: var(--bs-emphasis-color); }
.act-detail[b-f3yqph1h0p] { color: var(--bs-secondary-color); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; }
.act-tag[b-f3yqph1h0p] { font-size: .6rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: .05rem .35rem; border-radius: 5px; margin-left: .35rem; background: rgba(79,70,229,.12); color: #5b52f0; }
.act-when[b-f3yqph1h0p] { font-size: .68rem; color: var(--bs-secondary-color); white-space: nowrap; text-align: right; }
.act-who[b-f3yqph1h0p] { font-size: .66rem; color: var(--bs-secondary-color); opacity: .85; }
.act-foot[b-f3yqph1h0p] { text-align: center; padding: .75rem; border-top: 1px solid var(--bs-border-color); }
.act-foot a[b-f3yqph1h0p] { font-size: .8rem; font-weight: 600; color: var(--ll-accent); text-decoration: none; }

/* Customize toggle button (top-right of a tile/card) */
.cust-btn[b-f3yqph1h0p] {
    position: absolute; top: .4rem; right: .4rem; z-index: 2;
    font-size: .68rem; font-weight: 600; line-height: 1; padding: .2rem .45rem;
    border: 1px solid var(--bs-border-color); border-radius: 6px;
    background: var(--bs-body-bg); color: var(--bs-secondary-color); cursor: pointer;
}
.cust-btn:hover[b-f3yqph1h0p] { border-color: var(--ll-accent); color: var(--ll-accent); }

/* Responsive */
@media (max-width: 991.98px) {
    .dash-body[b-f3yqph1h0p] { grid-template-columns: 1fr; }
    .kpi-strip[b-f3yqph1h0p] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .kpi-strip[b-f3yqph1h0p] { grid-template-columns: 1fr; }
    .ws-cards[b-f3yqph1h0p] { grid-template-columns: 1fr; }
}
/* /Components/Pages/KbArticleView.razor.rz.scp.css */
/* Knowledge base article — editorial reading layout (echoes the client guide design).
   Theme-aware via the app's global --ll-* / --bs-* tokens. */

.kb-back[b-ntspasrw9s] {
    margin-bottom: 1rem;
}

.kb-back a[b-ntspasrw9s] {
    font-size: .85rem;
    color: var(--bs-secondary-color);
    text-decoration: none;
}

.kb-back a:hover[b-ntspasrw9s] {
    color: var(--ll-accent);
}

.kb-article[b-ntspasrw9s] {
    max-width: 60rem;
}

.kb-eyebrow[b-ntspasrw9s] {
    font-size: .74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--ll-accent);
    margin-bottom: .35rem;
}

.kb-title[b-ntspasrw9s] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3.6vw, 2.4rem);
    line-height: 1.12;
    letter-spacing: -.01em;
    font-weight: 700;
    color: var(--bs-emphasis-color);
    text-wrap: balance;
}

.kb-lede[b-ntspasrw9s] {
    font-size: 1.15rem;
    line-height: 1.55;
    color: var(--bs-secondary-color);
    max-width: 46rem;
    margin: 0 0 1.4rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--bs-border-color);
}

/* "On this page" contents index (echoes the guide's TOC). */
.kb-toc[b-ntspasrw9s] {
    max-width: 46rem;
    background: var(--bs-secondary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    padding: 1.1rem 1.3rem;
    margin: 0 0 1.7rem;
}

.kb-toc-h[b-ntspasrw9s] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-weight: 700;
    color: var(--bs-secondary-color);
    margin-bottom: .7rem;
}

.kb-toc ol[b-ntspasrw9s] {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: toc;
    columns: 2;
    column-gap: 2rem;
}

.kb-toc li[b-ntspasrw9s] {
    break-inside: avoid;
    margin-bottom: .42rem;
    counter-increment: toc;
}

.kb-toc a[b-ntspasrw9s] {
    display: flex;
    gap: .55rem;
    align-items: baseline;
    text-decoration: none;
    color: var(--bs-body-color);
    font-size: .92rem;
    line-height: 1.35;
}

.kb-toc a[b-ntspasrw9s]::before {
    content: counter(toc, decimal-leading-zero);
    color: var(--ll-accent);
    font-weight: 700;
    font-size: .8rem;
    font-variant-numeric: tabular-nums;
    min-width: 1.5rem;
    flex: none;
}

.kb-toc a:hover[b-ntspasrw9s] {
    color: var(--ll-accent);
}

@media (max-width: 640px) {
    .kb-toc ol[b-ntspasrw9s] { columns: 1; }
}

.kb-body[b-ntspasrw9s] {
    font-size: 1.02rem;
    line-height: 1.72;
    color: var(--bs-body-color);
    max-width: 46rem;
}

/* Section headings authored as "## Heading" — the TOC scrolls to these. */
.kb-body[b-ntspasrw9s]  h2.kb-h {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.32rem;
    font-weight: 700;
    color: var(--bs-emphasis-color);
    letter-spacing: -.01em;
    margin: 1.9rem 0 .7rem;
    padding-top: .3rem;
    scroll-margin-top: 1rem;
}

.kb-body[b-ntspasrw9s]  h2.kb-h:first-child {
    margin-top: 0;
}

.kb-body[b-ntspasrw9s]  p {
    margin: 0 0 1.05rem;
}

.kb-body[b-ntspasrw9s]  strong {
    color: var(--bs-emphasis-color);
    font-weight: 650;
}

/* Real bullet lists with a small accent-square marker (the client-guide look). */
.kb-body[b-ntspasrw9s]  ul {
    list-style: none;
    padding-left: 0;
    margin: .5rem 0 1.1rem;
}

.kb-body[b-ntspasrw9s]  ul li {
    position: relative;
    padding-left: 1.45rem;
    margin: .42rem 0;
}

.kb-body[b-ntspasrw9s]  ul li::before {
    content: "";
    position: absolute;
    left: .3rem;
    top: .72em;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--ll-accent);
}

.kb-body[b-ntspasrw9s]  ol {
    padding-left: 1.3rem;
    margin: .5rem 0 1.1rem;
}

.kb-body[b-ntspasrw9s]  ol li {
    margin: .42rem 0;
    padding-left: .2rem;
}

.kb-body[b-ntspasrw9s]  ol li::marker {
    color: var(--ll-accent);
    font-weight: 700;
}

/* Related articles as chips/cards */
.kb-related[b-ntspasrw9s] {
    max-width: 60rem;
    margin-top: 2.4rem;
    padding-top: 1.3rem;
    border-top: 1px solid var(--bs-border-color);
}

.kb-cat[b-ntspasrw9s] {
    font-size: .74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--ll-accent);
    margin-bottom: .8rem;
}

.kb-related-grid[b-ntspasrw9s] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: .6rem;
}

.kb-related-card[b-ntspasrw9s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    text-decoration: none;
    color: var(--bs-emphasis-color);
    font-size: .92rem;
    font-weight: 550;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    padding: .65rem .85rem;
    background: var(--bs-body-bg);
    transition: border-color .14s ease, transform .14s ease;
}

.kb-related-card span[b-ntspasrw9s] {
    color: var(--ll-accent);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .14s ease, transform .14s ease;
}

.kb-related-card:hover[b-ntspasrw9s] {
    border-color: var(--ll-accent);
    transform: translateY(-1px);
}

.kb-related-card:hover span[b-ntspasrw9s] {
    opacity: 1;
    transform: translateX(0);
}

/* "Still need a hand?" callout — accent-left card, like the guide's callouts. */
.kb-help-cta[b-ntspasrw9s] {
    max-width: 60rem;
    margin-top: 1.9rem;
    padding: .95rem 1.15rem;
    border: 1px solid var(--bs-border-color);
    border-left: 4px solid var(--ll-accent);
    border-radius: 10px;
    background: var(--ll-accent-wash);
    font-size: .95rem;
    color: var(--bs-body-color);
}

.kb-help-cta .k[b-ntspasrw9s] {
    display: block;
    font-weight: 700;
    color: var(--bs-emphasis-color);
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .15rem;
}
/* /Components/Pages/KnowledgeBase.razor.rz.scp.css */
/* Knowledge base — editorial "help center" look (echoes the client guide design).
   Theme-aware via the app's global --ll-* / --bs-* tokens (both have light/dark parity). */

.kb-hero[b-1v9s0r15v4] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1.9rem 1.6rem 1.7rem;
    margin-bottom: 1.6rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 16px;
    background:
        radial-gradient(120% 150% at 100% 0%, var(--ll-accent-wash) 0%, transparent 55%),
        var(--bs-body-bg);
}

.kb-hero-main[b-1v9s0r15v4] {
    max-width: 44rem;
}

.kb-eyebrow[b-1v9s0r15v4] {
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: .74rem;
    font-weight: 700;
    color: var(--ll-accent);
    margin: 0 0 .5rem;
}

.kb-hero-title[b-1v9s0r15v4] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.9rem, 4vw, 2.6rem);
    line-height: 1.1;
    letter-spacing: -.01em;
    color: var(--bs-emphasis-color);
    margin: 0 0 .5rem;
    text-wrap: balance;
}

.kb-hero-lede[b-1v9s0r15v4] {
    font-size: 1.08rem;
    color: var(--bs-secondary-color);
    margin: 0;
}

.ll-search[b-1v9s0r15v4] {
    min-width: 260px;
    max-width: 420px;
    width: 100%;
}

.kb-section[b-1v9s0r15v4] {
    margin-top: 2rem;
}

.kb-cat[b-1v9s0r15v4] {
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--ll-accent);
    margin-bottom: .85rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.kb-grid[b-1v9s0r15v4] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: .9rem;
}

.kb-card[b-1v9s0r15v4] {
    position: relative;
    display: block;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--bs-border-color);
    border-radius: 13px;
    padding: 1.05rem 1.15rem 1.1rem;
    background: var(--bs-body-bg);
    overflow: hidden;
    transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

/* A thin accent bar that grows on hover — a subtle, considered flourish. */
.kb-card[b-1v9s0r15v4]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--ll-accent);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .16s ease;
}

.kb-card:hover[b-1v9s0r15v4] {
    border-color: var(--ll-accent);
    box-shadow: 0 6px 22px rgba(79, 70, 229, .13);
    transform: translateY(-2px);
}

.kb-card:hover[b-1v9s0r15v4]::before {
    transform: scaleY(1);
}

.kb-card-title[b-1v9s0r15v4] {
    font-weight: 650;
    color: var(--bs-emphasis-color);
    margin-bottom: .3rem;
    padding-right: 1.4rem;
    line-height: 1.3;
}

.kb-card-sub[b-1v9s0r15v4] {
    font-size: .86rem;
    color: var(--bs-secondary-color);
    line-height: 1.5;
}

.kb-card-arrow[b-1v9s0r15v4] {
    position: absolute;
    right: 1rem;
    bottom: .95rem;
    color: var(--ll-accent);
    font-size: 1.05rem;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .16s ease, transform .16s ease;
}

.kb-card:hover .kb-card-arrow[b-1v9s0r15v4] {
    opacity: 1;
    transform: translateX(0);
}

@media (max-width: 640px) {
    .kb-hero[b-1v9s0r15v4] { padding: 1.4rem 1.15rem; }
    .kb-hero-actions[b-1v9s0r15v4] { width: 100%; }
}
/* /Components/Pages/Landing.razor.rz.scp.css */
/* Landing page — paleta propia, declarada en .landing (NO en :root) para que no se
   filtre al shell de la app: esta página es del PRODUCTO y se ve igual sea cual sea
   el tema que eligió el usuario.

   Toma del sistema v2 lo que tiene que ser igual —la marca, la tipografía, los radios,
   el borde— y se queda con lo suyo: el navy de las secciones oscuras, que es lo que le
   da carácter de página de producto y no de pantalla interna. */
.landing[b-fwxr5usyhs] {
    --ink: #0b1f3a;
    --ink-2: #13294b;
    --slate: #475569;
    --line: #e3e8ef;
    --bg: #ffffff;
    --bg-soft: #f6f8fb;
    --accent: #3d4ee0;        /* la marca del sistema */
    --accent-hover: #2f3ec4;
    --accent-soft: #eceffe;

    font-family: var(--ll-font-sans);
    color: var(--ink);
    background: var(--bg);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
}

.landing a[b-fwxr5usyhs] { text-decoration: none; color: inherit; }

.wrap[b-fwxr5usyhs] { max-width: 1120px; margin: 0 auto; padding: 0 24px; }

.landing .btn[b-fwxr5usyhs] {
    display: inline-block; padding: 11px 20px; border-radius: 8px;
    font-weight: 600; font-size: 15px; transition: .15s; cursor: pointer; border: 1px solid transparent;
}
.landing .btn-primary[b-fwxr5usyhs] { background: var(--accent); color: #fff; border-color: var(--accent); }
.landing .btn-primary:hover[b-fwxr5usyhs] { background: var(--accent-hover); border-color: var(--accent-hover); }
.landing .btn-ghost[b-fwxr5usyhs] { border: 1px solid var(--line); color: var(--ink); background: transparent; }
.landing .btn-ghost:hover[b-fwxr5usyhs] { background: var(--bg-soft); }

/* nav */
.ll-nav[b-fwxr5usyhs] {
    position: sticky; top: 0; background: #fff;
    border-bottom: 1px solid var(--line); z-index: 10;
}
.nav-in[b-fwxr5usyhs] { display: flex; align-items: center; justify-content: space-between; height: 64px; }
.brand[b-fwxr5usyhs] { display: flex; align-items: center; gap: 10px; }
/* multiply blends the logo's white background into the (white) bar, so it never reads as a box. */
.brand-img[b-fwxr5usyhs] { height: 50px; width: auto; display: block; mix-blend-mode: multiply; }
.brand-img-sm[b-fwxr5usyhs] { height: 40px; width: auto; display: block; mix-blend-mode: multiply; }
.nav-links[b-fwxr5usyhs] { display: flex; align-items: center; gap: 26px; font-size: 14px; color: var(--slate); font-weight: 500; }
.nav-links a:hover[b-fwxr5usyhs] { color: var(--ink); }
.nav-cta[b-fwxr5usyhs] { display: flex; align-items: center; gap: 12px; }

/* hero */
.hero[b-fwxr5usyhs] { padding: 84px 0 72px; background: radial-gradient(1200px 500px at 70% -10%, var(--accent-soft) 0, transparent 60%), var(--bg); }
.eyebrow[b-fwxr5usyhs] {
    display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: var(--accent); background: var(--accent-soft);
    padding: 6px 12px; border-radius: 999px; margin-bottom: 22px;
}
.hero h1[b-fwxr5usyhs] { font-size: clamp(34px, 5vw, 54px); line-height: 1.05; letter-spacing: -.03em; margin: 0 0 18px; max-width: 18ch; }
.lede[b-fwxr5usyhs] { font-size: 19px; color: var(--slate); max-width: 54ch; margin: 0 0 30px; }
.hero-cta[b-fwxr5usyhs] { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.hero-cta.center[b-fwxr5usyhs] { justify-content: center; }
.micro[b-fwxr5usyhs] { font-size: 13px; color: var(--slate); margin-top: 14px; }
.hero-grid[b-fwxr5usyhs] { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }

/* mock app preview */
.preview[b-fwxr5usyhs] { border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 30px 60px -30px rgba(11,31,58,.35); overflow: hidden; }
.preview-bar[b-fwxr5usyhs] { display: flex; gap: 6px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--bg-soft); }
.dot[b-fwxr5usyhs] { width: 11px; height: 11px; border-radius: 50%; }
.dot-r[b-fwxr5usyhs] { background: #ff5f57; } .dot-y[b-fwxr5usyhs] { background: #febc2e; } .dot-g[b-fwxr5usyhs] { background: #28c840; }
.preview-body[b-fwxr5usyhs] { padding: 18px; }
.preview-head[b-fwxr5usyhs] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 15px; }
.pl-row[b-fwxr5usyhs] { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.pl-row.sub[b-fwxr5usyhs] { font-weight: 700; }
.pl-row.gap[b-fwxr5usyhs] { margin-top: 8px; }
.pl-row.total[b-fwxr5usyhs] { font-weight: 800; border-bottom: none; border-top: 2px solid var(--ink); margin-top: 6px; padding-top: 12px; font-size: 15px; }
.pos[b-fwxr5usyhs] { color: #1f7a5a; } .neg[b-fwxr5usyhs] { color: #b4232a; }   /* P&L money: green in / red out (financial convention) */
.tag[b-fwxr5usyhs] { font-size: 11px; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 2px 8px; border-radius: 6px; }
/* Las cifras del P&L de muestra en tabular: es lo que hace que la maqueta parezca el producto. */
.pl-row span:last-child[b-fwxr5usyhs] { font-variant-numeric: tabular-nums; }

/* logos strip */
.strip[b-fwxr5usyhs] { padding: 26px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--bg-soft); }
.strip-in[b-fwxr5usyhs] { display: flex; align-items: center; gap: 34px; justify-content: center; flex-wrap: wrap; color: #94a3b8; font-weight: 700; font-size: 14px; letter-spacing: .02em; }

/* sections */
.landing section[b-fwxr5usyhs] { padding: 80px 0; }
.sec-head[b-fwxr5usyhs] { text-align: center; max-width: 60ch; margin: 0 auto 52px; }
.sec-head h2[b-fwxr5usyhs] { font-size: clamp(26px, 3.4vw, 38px); letter-spacing: -.02em; margin: 0 0 14px; }
.sec-head p[b-fwxr5usyhs] { font-size: 17px; color: var(--slate); margin: 0; }
.features[b-fwxr5usyhs] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.card[b-fwxr5usyhs] { border: 1px solid var(--line); border-radius: 12px; padding: 26px; background: #fff; transition: .15s; }
.card:hover[b-fwxr5usyhs] { box-shadow: 0 18px 40px -24px rgba(11,31,58,.3); transform: translateY(-2px); }
/* En una página de producto el ícono es ilustración, no control: va más grande que en la app. */
.ic[b-fwxr5usyhs] { width: 44px; height: 44px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-size: 22px; margin-bottom: 16px; }
.card h3[b-fwxr5usyhs] { font-size: 18px; margin: 0 0 8px; letter-spacing: -.01em; }
.card p[b-fwxr5usyhs] { font-size: 15px; color: var(--slate); margin: 0; }
.vision[b-fwxr5usyhs] { text-align: center; color: var(--slate); font-size: 15px; margin: 32px auto 0; max-width: 60ch; }

/* integrations */
.int-sec[b-fwxr5usyhs] { background: var(--bg-soft); }
.integrations-row[b-fwxr5usyhs] { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; }
.int-card[b-fwxr5usyhs] {
    display: flex; align-items: center; gap: 16px;
    border: 1px solid var(--line); border-radius: 12px; padding: 22px 28px; background: #fff;
    max-width: 520px; flex: 1 1 380px;
}
.int-card img[b-fwxr5usyhs] { height: 42px; width: auto; flex: 0 0 auto; }
.int-name[b-fwxr5usyhs] { font-weight: 700; font-size: 17px; letter-spacing: -.01em; }
.int-sub[b-fwxr5usyhs] { font-size: 13px; color: var(--slate); margin-top: 3px; }

/* steps */
.steps-sec[b-fwxr5usyhs] { background: var(--ink); color: #fff; }
.steps-sec .sec-head h2[b-fwxr5usyhs] { color: #fff; }
.steps-sec .sec-head p[b-fwxr5usyhs] { color: #9fb3cc; }
.steps[b-fwxr5usyhs] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: s; }
.step[b-fwxr5usyhs] { position: relative; padding: 24px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; background: rgba(255,255,255,.04); }
.step[b-fwxr5usyhs]::before {
    counter-increment: s; content: counter(s); display: grid; place-items: center;
    width: 34px; height: 34px; border-radius: 8px; background: var(--accent);
    color: #fff; font-weight: 800; margin-bottom: 14px;
}
.step h4[b-fwxr5usyhs] { margin: 0 0 6px; font-size: 16px; }
.step p[b-fwxr5usyhs] { margin: 0; font-size: 14px; color: #9fb3cc; }

/* trust */
.trust[b-fwxr5usyhs] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.trust .card[b-fwxr5usyhs] { display: flex; gap: 14px; align-items: flex-start; }
.trust .ic[b-fwxr5usyhs] { flex: 0 0 auto; margin: 0; }

/* cta band */
.band[b-fwxr5usyhs] { background: linear-gradient(135deg, var(--ink), var(--ink-2)); color: #fff; border-radius: 16px; padding: 54px; text-align: center; }
.band h2[b-fwxr5usyhs] { font-size: 32px; letter-spacing: -.02em; margin: 0 0 12px; }
.band p[b-fwxr5usyhs] { color: #9fb3cc; font-size: 17px; margin: 0 0 26px; }
.band .btn-ghost[b-fwxr5usyhs] { border-color: rgba(255,255,255,.3); color: #fff; }
.band .btn-ghost:hover[b-fwxr5usyhs] { background: rgba(255,255,255,.08); }

/* footer */
.ll-foot[b-fwxr5usyhs] { padding: 44px 0; border-top: 1px solid var(--line); color: var(--slate); font-size: 14px; }
.foot-in[b-fwxr5usyhs] { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.foot-links[b-fwxr5usyhs] { display: flex; gap: 20px; }

@media (max-width: 860px) {
    .hero-grid[b-fwxr5usyhs], .features[b-fwxr5usyhs], .steps[b-fwxr5usyhs], .trust[b-fwxr5usyhs] { grid-template-columns: 1fr; }
    .hero-grid[b-fwxr5usyhs], .steps[b-fwxr5usyhs], .trust[b-fwxr5usyhs] { gap: 40px; }
    .features[b-fwxr5usyhs] { gap: 24px; }
    .nav-links[b-fwxr5usyhs] { display: none; }
    .band[b-fwxr5usyhs] { padding: 36px 22px; }
}
/* /Components/Pages/Reports.razor.rz.scp.css */
.rep-cat[b-x2paklz7r6] { margin-bottom: 1.75rem; }
.rep-cat-h[b-x2paklz7r6] { display: block; margin-bottom: .6rem; }

.rep-grid[b-x2paklz7r6] {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.rep-card[b-x2paklz7r6] {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    padding: 1rem 1.1rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .03), 0 4px 16px rgba(0, 0, 0, .04);
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}

a.rep-card:hover[b-x2paklz7r6] {
    transform: translateY(-2px);
    border-color: var(--ll-accent);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .08);
}

.rep-card-name[b-x2paklz7r6] { font-weight: 700; letter-spacing: -.01em; color: var(--bs-emphasis-color); }
.rep-card-desc[b-x2paklz7r6] { font-size: .82rem; color: var(--bs-secondary-color); margin-top: .35rem; line-height: 1.4; }
.rep-card-go[b-x2paklz7r6] { font-size: .8rem; font-weight: 600; color: var(--ll-accent); margin-top: .7rem; }

.rep-card-soon[b-x2paklz7r6] { opacity: .7; cursor: default; }
/* /Components/Pages/ReportView.razor.rz.scp.css */
.rep-group td[b-asklrv1lzw] {
    background: var(--bs-tertiary-bg);
    border-top: 1px solid var(--bs-border-color);
}

.rep-subtotal td[b-asklrv1lzw] {
    border-top: 1px solid var(--bs-border-color);
    background: color-mix(in srgb, var(--bs-tertiary-bg) 55%, transparent);
}

.rep-total td[b-asklrv1lzw] {
    border-top: 2px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.ll-modal-backdrop[b-asklrv1lzw] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .4);
    z-index: 1050;
}

.ll-modal[b-asklrv1lzw] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1060;
    width: min(560px, 94vw);
    max-height: 90vh;
    overflow: auto;
}
/* /Components/Pages/RequestAccess.razor.rz.scp.css */
/* Request-access page — matches the landing palette (navy + emerald), scoped to .ra. */
.ra[b-44z8qbj8f1] {
    --ink: #0b1f3a;
    --slate: #475569;
    --line: #e3e8ef;
    --accent: #4f46e5;   /* matches the app/login accent (--ll-accent) */
    --bg: #ffffff;
    --bg-soft: #f6f8fb;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
    background: radial-gradient(1000px 460px at 70% -10%, #eef2ff 0, transparent 60%), var(--bg);
    min-height: 100vh;
}

.ra a[b-44z8qbj8f1] { text-decoration: none; color: inherit; }
.wrap[b-44z8qbj8f1] { max-width: 1120px; margin: 0 auto; padding: 0 24px; }

.ra-nav[b-44z8qbj8f1] { border-bottom: 1px solid var(--line); background: #fff; }
.nav-in[b-44z8qbj8f1] { display: flex; align-items: center; justify-content: space-between; height: 64px; }
.brand-img[b-44z8qbj8f1] { height: 50px; width: auto; display: block; mix-blend-mode: multiply; }
.back[b-44z8qbj8f1] { color: var(--slate); font-size: 14px; font-weight: 500; }
.back:hover[b-44z8qbj8f1] { color: var(--ink); }

.ra-body[b-44z8qbj8f1] { display: flex; justify-content: center; padding: 48px 24px 64px; }

.card[b-44z8qbj8f1] {
    width: 100%;
    max-width: 620px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 36px;
    box-shadow: 0 30px 60px -34px rgba(11,31,58,.35);
}

.card h1[b-44z8qbj8f1] { font-size: 28px; letter-spacing: -.02em; margin: 0 0 8px; }
.sub[b-44z8qbj8f1] { color: var(--slate); font-size: 16px; margin: 0 0 26px; }

.row2[b-44z8qbj8f1] { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field[b-44z8qbj8f1] { margin-bottom: 16px; display: flex; flex-direction: column; }
.field label[b-44z8qbj8f1] { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.req[b-44z8qbj8f1] { color: #b4232a; margin-left: 2px; }

.in[b-44z8qbj8f1] {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    font-size: 15px;
    font-family: inherit;
    color: var(--ink);
    background: var(--bg-soft);
    transition: border-color .15s, background .15s;
    width: 100%;
}
.in:focus[b-44z8qbj8f1] { outline: none; border-color: var(--accent); background: #fff; box-shadow: 0 0 0 3px rgba(79,70,229,.15); }
.area[b-44z8qbj8f1] { resize: vertical; min-height: 110px; }

.btn[b-44z8qbj8f1] { display: inline-block; padding: 12px 22px; border-radius: 10px; font-weight: 600; font-size: 15px; border: 1px solid transparent; cursor: pointer; transition: .15s; }
.btn-primary[b-44z8qbj8f1] { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn-primary:hover[b-44z8qbj8f1] { background: #4338ca; }
.btn-primary:disabled[b-44z8qbj8f1] { opacity: .6; cursor: default; }
.submit[b-44z8qbj8f1] { width: 100%; margin-top: 4px; }

.fineprint[b-44z8qbj8f1] { text-align: center; color: var(--slate); font-size: 12.5px; margin: 12px 0 0; }
.err-box[b-44z8qbj8f1] { background: #fbeaea; border: 1px solid #e7b9b9; color: #8a1f24; border-radius: 10px; padding: 10px 13px; font-size: 14px; margin-bottom: 14px; }

/* Blazor validation message styling */
[b-44z8qbj8f1] .validation-message { color: #b4232a; font-size: 13px; margin-top: 5px; }

/* success state */
.done[b-44z8qbj8f1] { text-align: center; padding: 18px 0; }
.check[b-44z8qbj8f1] { width: 56px; height: 56px; border-radius: 50%; background: #eef2ff; color: var(--accent); font-size: 28px; display: grid; place-items: center; margin: 0 auto 18px; }
.done h1[b-44z8qbj8f1] { margin: 0 0 10px; }
.done p[b-44z8qbj8f1] { color: var(--slate); font-size: 16px; margin: 0 0 24px; }

@media (max-width: 560px) {
    .row2[b-44z8qbj8f1] { grid-template-columns: 1fr; }
    .card[b-44z8qbj8f1] { padding: 26px 20px; }
}
/* /Components/Pages/Settings.razor.rz.scp.css */
.logo-preview[b-p47agw9m1a] {
    display: block;
    max-height: 64px;
    max-width: 220px;
    padding: 4px 8px;
    border: 1px solid var(--bs-border-color);
    border-radius: 6px;
    background: #fff;
}
/* /Components/Pages/SupportTicketDetail.razor.rz.scp.css */
.kb-body[b-8og11dd2yf]  p {
    margin: 0 0 .75rem;
}

.kb-body[b-8og11dd2yf]  p:last-child {
    margin-bottom: 0;
}

.ticket-thread[b-8og11dd2yf] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.ticket-msg[b-8og11dd2yf] {
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    padding: .7rem .9rem;
    background: var(--bs-body-bg);
}

.ticket-msg-staff[b-8og11dd2yf] {
    border-color: rgba(79, 70, 229, .35);
    background: rgba(79, 70, 229, .05);
}

.ticket-msg-meta[b-8og11dd2yf] {
    font-size: .82rem;
    margin-bottom: .35rem;
}
/* /Components/Pages/SupportTickets.razor.rz.scp.css */
.ll-search[b-ma1mg5apwl] {
    min-width: 220px;
    max-width: 320px;
}

.ll-row[b-ma1mg5apwl] {
    cursor: pointer;
}
/* /Components/Pages/TeamTasks.razor.rz.scp.css */
/* Colored task rows by due status — reuses the app's semantic wash tokens (defined per theme in app.css),
   so it adapts automatically in light and dark. Disabled rows carry no state class and stay untinted.
   The cell background tints the whole row; a 4px inset box-shadow on the first cell is the severity stripe
   (box-shadow, not border, so it doesn't shift the cell's content). */

tr.ll-row-over td[b-i5brmve26n] { background: var(--ll-crit-wash); }
tr.ll-row-today td[b-i5brmve26n] { background: var(--ll-warn-wash); }
tr.ll-row-ok td[b-i5brmve26n] { background: var(--ll-pos-wash); }

tr.ll-row-over td:first-child[b-i5brmve26n] { box-shadow: inset 4px 0 0 var(--ll-crit); }
tr.ll-row-today td:first-child[b-i5brmve26n] { box-shadow: inset 4px 0 0 var(--ll-warn); }
tr.ll-row-ok td:first-child[b-i5brmve26n] { box-shadow: inset 4px 0 0 var(--ll-pos); }
/* /Components/Pages/UsersRoles.razor.rz.scp.css */
/* Tab buttons (we drive the active state ourselves, no Bootstrap JS) */
.nav-tabs .nav-link[b-nxz4merj3n] {
    background: none;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    cursor: pointer;
    color: var(--bs-secondary-color);
}

.nav-tabs .nav-link:hover[b-nxz4merj3n] {
    color: var(--bs-body-color);
}

.nav-tabs .nav-link.active[b-nxz4merj3n] {
    color: var(--ll-accent);
    background: none;
}

.perm-matrix .screen-name[b-nxz4merj3n] {
    width: 12rem;
    font-weight: 600;
    vertical-align: middle;
    color: var(--bs-emphasis-color);
}
/* /Components/Shared/AgingBar.razor.rz.scp.css */
.ll-agewrap[b-02691mhzoo] {
    display: block;
}

.ll-agebar[b-02691mhzoo] {
    display: flex;
    height: 6px;
    gap: 2px;
    border-radius: 5px;
    overflow: hidden;
    background: var(--bs-tertiary-bg);
}

.ll-age-seg[b-02691mhzoo] {
    display: block;
    height: 100%;
    border-radius: 2px;
    min-width: 2px;
}

.ll-age-empty[b-02691mhzoo] {
    display: block;
    height: 100%;
}

/* Bucket index → severity colour (AgingBucket enum order: 0 Current … 4 90+). */
.ll-age-0[b-02691mhzoo] { background: var(--ll-age-cur); }
.ll-age-1[b-02691mhzoo] { background: var(--ll-age-1); }
.ll-age-2[b-02691mhzoo] { background: var(--ll-age-2); }
.ll-age-3[b-02691mhzoo] { background: var(--ll-age-3); }
.ll-age-4[b-02691mhzoo] { background: var(--ll-age-4); }

.ll-agelegend[b-02691mhzoo] {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .45rem;
    font-size: .66rem;
    color: var(--bs-secondary-color);
}

.ll-agekey[b-02691mhzoo] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}

.ll-agekey i[b-02691mhzoo] {
    width: 8px;
    height: 8px;
    border-radius: 3px;
    display: inline-block;
}
/* /Components/Shared/KpiTile.razor.rz.scp.css */
.ll-kpi[b-z0zi5huzfr] {
    display: block;
    height: 100%;
    text-decoration: none;
    color: inherit;
    background: var(--ll-surface);
    border: 1px solid var(--ll-border);
    border-radius: var(--ll-radius-lg);
    padding: 1rem 1.25rem;
    box-shadow: var(--ll-shadow-sm);
}

.ll-kpi-link[b-z0zi5huzfr] {
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}

/* Una tarjeta que es un link se marca al pasar por encima — sin levantarla: el salto
   de 2px hacía bailar toda la banda de KPI al recorrerla con el mouse. */
.ll-kpi-link:hover[b-z0zi5huzfr] {
    border-color: var(--ll-border-strong);
    background: var(--ll-row-hover);
}

.ll-kpi-top[b-z0zi5huzfr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.ll-kpi-label[b-z0zi5huzfr] {
    font-size: .8125rem;
    font-weight: 500;
    color: var(--ll-ink-muted);
}

.ll-kpi-ico[b-z0zi5huzfr] {
    width: 30px;
    height: 30px;
    border-radius: var(--ll-radius);
    display: grid;
    place-items: center;
    font-size: .95rem;
    background: var(--ll-accent-wash);
    color: var(--ll-accent);
}

.ll-kpi-ico-positive[b-z0zi5huzfr] { background: var(--ll-pos-wash); color: var(--ll-pos); }
.ll-kpi-ico-warning[b-z0zi5huzfr]  { background: var(--ll-warn-wash); color: var(--ll-warn); }
.ll-kpi-ico-critical[b-z0zi5huzfr] { background: var(--ll-crit-wash); color: var(--ll-crit); }

.ll-kpi-value[b-z0zi5huzfr] {
    font-size: 1.75rem;
    line-height: 2.125rem;
    font-weight: 600;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
    margin: .375rem 0 .125rem;
    color: var(--ll-ink);
}

.ll-tone-positive[b-z0zi5huzfr] { color: var(--ll-pos); }
.ll-tone-warning[b-z0zi5huzfr]  { color: var(--ll-warn); }
.ll-tone-critical[b-z0zi5huzfr] { color: var(--ll-crit); }
.ll-tone-accent[b-z0zi5huzfr]   { color: var(--ll-accent); }

.ll-kpi-meta[b-z0zi5huzfr] {
    font-size: .8125rem;
    color: var(--ll-ink-muted);
}

.ll-kpi-extra[b-z0zi5huzfr] {
    margin-top: .75rem;
}

.tnum[b-z0zi5huzfr] {
    font-variant-numeric: tabular-nums;
}
/* /Components/Shared/LegalPage.razor.rz.scp.css */
/* Public legal pages (privacy, terms). Self-contained palette matching Landing.razor.css, defined on .legal
   (NOT :root) so nothing leaks into the app shell and the page reads the same under either app theme.

   The prose arrives as ChildContent from Privacy.razor / Terms.razor, which carries THOSE components' scope
   attribute, so every rule that styles it goes through ::deep. */

.legal[b-7vw0god316] {
    --ink: #0b1f3a;
    --slate: #475569;
    --line: #e3e8ef;
    --bg: #ffffff;
    --bg-soft: #f6f8fb;
    --accent: #4f46e5;

    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
    background: var(--bg);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.legal a[b-7vw0god316] { color: var(--accent); }
.wrap[b-7vw0god316] { max-width: 760px; margin: 0 auto; padding: 0 24px; width: 100%; }

.legal .btn[b-7vw0god316] {
    display: inline-block; padding: 9px 16px; border-radius: 10px;
    font-weight: 600; font-size: 14px; transition: .15s; border: 1px solid transparent; text-decoration: none;
}
.legal .btn-primary[b-7vw0god316] { background: var(--accent); color: #fff; border-color: var(--accent); }
.legal .btn-primary:hover[b-7vw0god316] { background: #4338ca; border-color: #4338ca; }
.legal .btn-ghost[b-7vw0god316] { border: 1px solid var(--line); color: var(--ink); background: transparent; }
.legal .btn-ghost:hover[b-7vw0god316] { background: var(--bg-soft); }

/* nav */
.lg-nav[b-7vw0god316] { border-bottom: 1px solid var(--line); background: #fff; }
.lg-nav .wrap[b-7vw0god316] { max-width: 1120px; }
.nav-in[b-7vw0god316] { display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 16px; }
.brand[b-7vw0god316] { display: flex; align-items: center; text-decoration: none; }
/* multiply blends the logo's white background into the (white) bar, so it never reads as a box. */
.brand-img[b-7vw0god316] { height: 46px; width: auto; display: block; mix-blend-mode: multiply; }
.brand-img-sm[b-7vw0god316] { height: 36px; width: auto; display: block; mix-blend-mode: multiply; }
.nav-cta[b-7vw0god316] { display: flex; align-items: center; gap: 10px; }

/* title block */
main[b-7vw0god316] { flex: 1; padding-bottom: 72px; }
.lg-head[b-7vw0god316] { padding: 56px 0 8px; }
.lg-head h1[b-7vw0god316] { font-size: 40px; line-height: 1.15; letter-spacing: -.02em; margin: 0 0 10px; text-wrap: balance; }
.updated[b-7vw0god316] { color: var(--slate); font-size: 14px; margin: 0; }
.intro[b-7vw0god316] { font-size: 18px; color: var(--slate); margin: 20px 0 0; }

/* the prose itself */
.legal-body[b-7vw0god316] { font-size: 16px; }
.legal-body[b-7vw0god316]  h2 {
    font-size: 21px; letter-spacing: -.01em; margin: 44px 0 12px;
    padding-top: 22px; border-top: 1px solid var(--line); text-wrap: balance;
}
.legal-body[b-7vw0god316]  h3 { font-size: 16px; margin: 26px 0 8px; }
.legal-body[b-7vw0god316]  p { margin: 0 0 14px; }
.legal-body[b-7vw0god316]  ul { margin: 0 0 16px; padding-left: 22px; }
.legal-body[b-7vw0god316]  li { margin-bottom: 8px; }
.legal-body[b-7vw0god316]  strong { font-weight: 650; }
.legal-body[b-7vw0god316]  .note {
    background: var(--bg-soft); border: 1px solid var(--line); border-radius: 12px;
    padding: 16px 18px; margin: 20px 0; color: var(--slate); font-size: 15px;
}
.legal-body[b-7vw0god316]  .note p:last-child { margin-bottom: 0; }
.legal-body[b-7vw0god316]  table { width: 100%; border-collapse: collapse; margin: 0 0 18px; font-size: 15px; }
.legal-body[b-7vw0god316]  th, .legal-body[b-7vw0god316]  td {
    text-align: left; vertical-align: top; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line);
}
.legal-body[b-7vw0god316]  th { font-weight: 650; white-space: nowrap; }

/* footer */
.lg-foot[b-7vw0god316] { padding: 40px 0; border-top: 1px solid var(--line); color: var(--slate); font-size: 14px; }
.lg-foot .wrap[b-7vw0god316] { max-width: 1120px; }
.foot-in[b-7vw0god316] { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.foot-links[b-7vw0god316] { display: flex; gap: 20px; }
.foot-links a[b-7vw0god316] { color: var(--slate); text-decoration: none; }
.foot-links a:hover[b-7vw0god316] { color: var(--ink); }

@media (max-width: 640px) {
    .lg-head[b-7vw0god316] { padding-top: 36px; }
    .lg-head h1[b-7vw0god316] { font-size: 30px; }
    .nav-cta .btn-ghost[b-7vw0god316] { display: none; }
    .legal-body[b-7vw0god316]  table, .legal-body[b-7vw0god316]  thead,
    .legal-body[b-7vw0god316]  tbody, .legal-body[b-7vw0god316]  tr, .legal-body[b-7vw0god316]  td, .legal-body[b-7vw0god316]  th { display: block; }
    .legal-body[b-7vw0god316]  th { border-bottom: none; padding-bottom: 2px; }
    .legal-body[b-7vw0god316]  td { padding-top: 0; }
}
/* /Components/Shared/PageHeader.razor.rz.scp.css */
.ll-page-head[b-nthkjn7mpi] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.ll-page-head-text[b-nthkjn7mpi] {
    min-width: 0;
}

.ll-eyebrow[b-nthkjn7mpi] {
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-bottom: .2rem;
}

.ll-page-title[b-nthkjn7mpi] {
    margin: 0;
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 600;
    letter-spacing: -.015em;
    text-wrap: balance;
    color: var(--ll-ink);
}

.ll-page-sub[b-nthkjn7mpi] {
    margin: .25rem 0 0;
    color: var(--ll-ink-muted);
    font-size: .875rem;
    max-width: 640px;
}

/* Actions own their spacing — keeps a button row baseline-aligned (§9). */
.ll-page-actions[b-nthkjn7mpi] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
}
/* /Components/Shared/StatusPill.razor.rz.scp.css */
.ll-pill[b-fkpbs3ccz6] {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    height: 1.375rem;
    font-size: .75rem;
    font-weight: 500;
    line-height: 1;
    padding: 0 .5rem;
    border-radius: var(--ll-radius-full);
    white-space: nowrap;
}

.ll-pill[b-fkpbs3ccz6]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: currentColor;
}

.ll-pill-neutral[b-fkpbs3ccz6] {
    background: var(--ll-neutral-wash);
    color: var(--ll-ink-muted);
}

.ll-pill-positive[b-fkpbs3ccz6] {
    background: var(--ll-pos-wash);
    color: var(--ll-pos);
}

.ll-pill-warning[b-fkpbs3ccz6] {
    background: var(--ll-warn-wash);
    color: var(--ll-warn);
}

.ll-pill-critical[b-fkpbs3ccz6] {
    background: var(--ll-crit-wash);
    color: var(--ll-crit);
}

.ll-pill-accent[b-fkpbs3ccz6] {
    background: var(--ll-accent-wash);
    color: var(--ll-accent);
}
/* /Components/Shared/SuccessCheck.razor.rz.scp.css */
.ll-success-overlay[b-f1igdkzqy7] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .35);
    animation: ll-fade-in-b-f1igdkzqy7 .12s ease-out;
}

.ll-success-card[b-f1igdkzqy7] {
    background: var(--bs-body-bg, #fff);
    border-radius: .75rem;
    padding: 1.75rem 2.25rem;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .28);
    text-align: center;
    min-width: 14rem;
    animation: ll-pop-b-f1igdkzqy7 .22s cubic-bezier(.2, .9, .3, 1.3);
}

.ll-success-check[b-f1igdkzqy7] {
    display: flex;
    justify-content: center;
    margin-bottom: .5rem;
}

.ll-success-msg[b-f1igdkzqy7] {
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--bs-body-color, #212529);
}

/* Green circle + checkmark drawn on with a stroke animation. */
.ll-check-circle[b-f1igdkzqy7] {
    stroke: #16a34a;
    stroke-width: 3;
    stroke-dasharray: 151;
    stroke-dashoffset: 151;
    animation: ll-draw-b-f1igdkzqy7 .4s ease-out forwards;
}

.ll-check-mark[b-f1igdkzqy7] {
    stroke: #16a34a;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: ll-draw-b-f1igdkzqy7 .3s .32s ease-out forwards;
}

@keyframes ll-draw-b-f1igdkzqy7 {
    to { stroke-dashoffset: 0; }
}

@keyframes ll-pop-b-f1igdkzqy7 {
    from { transform: scale(.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

@keyframes ll-fade-in-b-f1igdkzqy7 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .ll-success-overlay[b-f1igdkzqy7], .ll-success-card[b-f1igdkzqy7] { animation: none; }
    .ll-check-circle[b-f1igdkzqy7], .ll-check-mark[b-f1igdkzqy7] { animation-duration: .01s; }
}
/* /Components/Shared/Toolbar.razor.rz.scp.css */
.ll-toolbar[b-ekiw0ezewy] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.ll-toolbar-main[b-ekiw0ezewy] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    flex: 1 1 auto;
    min-width: 0;
}

.ll-toolbar-actions[b-ekiw0ezewy] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-left: auto;
}
