/* /Components/Layout/GuestLayout.razor.rz.scp.css */
.page[b-gm0u5p7lmg] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-gm0u5p7lmg] {
    flex: 1;
}

.sidebar[b-gm0u5p7lmg] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-gm0u5p7lmg] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-gm0u5p7lmg]  a, .top-row[b-gm0u5p7lmg]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-gm0u5p7lmg]  a:hover, .top-row[b-gm0u5p7lmg]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-gm0u5p7lmg]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-gm0u5p7lmg] {
        justify-content: space-between;
    }

    .top-row[b-gm0u5p7lmg]  a, .top-row[b-gm0u5p7lmg]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-gm0u5p7lmg] {
        flex-direction: row;
    }

    .sidebar[b-gm0u5p7lmg] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-gm0u5p7lmg] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-gm0u5p7lmg]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-gm0u5p7lmg], article[b-gm0u5p7lmg] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-gm0u5p7lmg] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    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-gm0u5p7lmg] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Armazón Clean OS: menú lateral claro (--marco) y, en escritorio, el contenido
   (la hoja; sin barra superior desde 2026-11-03) en un panel blanco con la esquina superior izquierda
   redondeada, apoyado sobre ese mismo gris (rediseño 2026-10-30). Los colores
   salen de los tokens de wwwroot/css/rhodus-os.css. */

.page[b-gn97kjlfr5] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--background);
}

main[b-gn97kjlfr5] {
    flex: 1;
    min-width: 0;
    background: var(--background);
}

.sidebar[b-gn97kjlfr5] {
    background: var(--marco);
    position: sticky;
    top: 0;
    z-index: 2;
}

li[b-gn97kjlfr5] {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

/* Los módulos ocupan todo el ancho disponible: grillas, gráficos y
   formularios se reparten la pantalla (sin tope de 1440 px). Las líneas de
   texto largo se acotan solas donde importa (os-encabezado p, os-texto-libre). */
.content[b-gn97kjlfr5] {
    width: 100%;
    min-width: 0;
    padding: var(--space-6) var(--pad-page) var(--space-12);
}

@media (max-width: 640.98px) {
    .content[b-gn97kjlfr5] {
        padding: var(--space-6) max(var(--space-4), env(safe-area-inset-right)) var(--space-12) max(var(--space-4), env(safe-area-inset-left));
    }
}

/* Tableta: un poco menos de margen lateral que en escritorio */
@media (min-width: 641px) and (max-width: 1023.98px) {
    .content[b-gn97kjlfr5] { padding: var(--space-6) var(--space-6) var(--space-12); }
}

@media (min-width: 641px) {
    .page[b-gn97kjlfr5] {
        flex-direction: row;
        background: var(--marco);
    }

    /* El panel: arranca a 12 px del borde superior, filete suave arriba y a la izquierda */
    main[b-gn97kjlfr5] {
        margin-top: var(--space-3);
        min-height: calc(100vh - var(--space-3));
        border: var(--border-width) solid var(--border);
        border-right: 0;
        border-bottom: 0;
        border-top-left-radius: var(--panel-radio);
        box-shadow: -1px 0 12px -6px rgba(19, 23, 34, .08);
    }

    .sidebar[b-gn97kjlfr5] {
        width: var(--sidebar-w-collapsed);
        flex: 0 0 var(--sidebar-w-collapsed);
        height: 100vh;
    }
}

#blazor-error-ui[b-gn97kjlfr5] {
    bottom: 0;
    display: none;
    left: 0;
    padding: var(--space-3) var(--space-6);
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-gn97kjlfr5] {
        cursor: pointer;
        position: absolute;
        right: var(--space-4);
        top: var(--space-2);
    }
/* /Components/Layout/MovilLayout.razor.rz.scp.css */
.movil[b-rrpdrv1rvu] {
    min-height: 100dvh;
    background: var(--marco);
}

.movil-barra[b-rrpdrv1rvu] {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 56px;
    padding: env(safe-area-inset-top) var(--space-4) 0;
    background: var(--accent-solid);
}

.movil-marca[b-rrpdrv1rvu],
.movil-accion[b-rrpdrv1rvu] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    color: var(--accent-on-solid);
    text-decoration: none;
    font-weight: 600;
}

.movil-accion[b-rrpdrv1rvu] {
    justify-content: center;
    min-width: 44px;
}

.movil-contenido[b-rrpdrv1rvu] {
    max-width: 640px;
    margin: 0 auto;
    padding: var(--space-3) var(--space-3) calc(var(--space-4) + env(safe-area-inset-bottom));
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* Menú lateral claro (rediseño 2026-10-30, a pedido del usuario): gris de marco
   (--marco), íconos de línea en el azul de texto del sistema (--text-link), grupos «Menú» y
   «Cuenta» con su etiqueta, y el activo como una tarjeta blanca con sombra suave.
   - Escritorio/tableta (≥ 641 px): barra de íconos de 72 px. El nombre de cada
     opción aparece en una etiqueta flotante al pasar el puntero o enfocar.
   - Móvil (≤ 640 px): cabecera con logo + botón "Menú" que abre un cajón con
     ícono y texto. Sin estado C#: la casilla oculta #os-nav-toggle gobierna todo. */

/* ---- Cabecera: logo + botón "Menú" (solo móvil) ---- */
.os-nav-toggle[b-pi267t1obb] {
    /* casilla real, oculta a la vista pero operable por teclado */
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.top-row.nav-marca[b-pi267t1obb] {
    height: var(--header-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--space-4);
    background: var(--marco);
    border-bottom: var(--border-width) solid var(--border);
}

/* Logo: el isotipo blanco sobre una ficha azul de marca */
.nav-logo[b-pi267t1obb] {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius);
    background: var(--accent-solid);
    box-shadow: var(--marco-sombra);
    transition: var(--transition-control);
}
.nav-logo:hover[b-pi267t1obb] { background: var(--accent-solid-hover); transform: translateY(-1px); }
.nav-logo:focus-visible[b-pi267t1obb] { outline: none; box-shadow: var(--focus-ring); }
.nav-logo img[b-pi267t1obb] { display: block; width: 22px; height: auto; }

.os-nav-boton[b-pi267t1obb] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    padding: 0 var(--space-4);
    border: var(--border-width) solid var(--border-input);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-link);
    font-size: var(--text-small-size);
    font-weight: var(--weight-semibold);
    cursor: pointer;
    user-select: none;
    transition: var(--transition-control);
}
.os-nav-boton:hover[b-pi267t1obb] { background: var(--accent-soft); }
.os-nav-toggle:focus-visible ~ .nav-marca .os-nav-boton[b-pi267t1obb] { box-shadow: var(--focus-ring); }
.os-nav-icono-cerrar[b-pi267t1obb] { display: none; }
.os-nav-toggle:checked ~ .nav-marca .os-nav-icono-abrir[b-pi267t1obb] { display: none; }
.os-nav-toggle:checked ~ .nav-marca .os-nav-icono-cerrar[b-pi267t1obb] { display: inline-block; }

/* ---- Grupos ---- */
.nav-grupo[b-pi267t1obb] { display: flex; flex-direction: column; gap: var(--space-2); }

.nav-grupo-titulo[b-pi267t1obb] {
    padding: 0 var(--space-3);
    color: var(--marco-texto);
    font-size: var(--text-caption-size);
    line-height: var(--text-caption-lh);
    font-weight: var(--weight-medium);
}

.nav-lista[b-pi267t1obb] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.nav-item[b-pi267t1obb] { position: relative; margin: 0; padding: 0; list-style: none; }
.nav-item form[b-pi267t1obb] { margin: 0; }

.nav-item[b-pi267t1obb]  .nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    min-height: 44px;
    padding: 0 var(--space-3);
    border: none;
    border-radius: var(--radius);
    background: none;
    color: var(--text-secondary);
    font: inherit;
    text-align: left;
    /* Los enlaces del sistema se subrayan al pasar el puntero; en el menú no */
    text-decoration: none;
    cursor: pointer;
    transition: var(--transition-control);
}
.nav-item[b-pi267t1obb]  .nav-link:hover,
.nav-item[b-pi267t1obb]  .nav-link:focus,
.nav-item[b-pi267t1obb]  .nav-link:active { text-decoration: none; }

/* Íconos de línea en el azul de texto del sistema */
.nav-item[b-pi267t1obb]  .nav-link .material-symbols-rounded {
    flex: 0 0 auto;
    font-size: 20px;
    color: var(--text-link);
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.nav-item[b-pi267t1obb]  .nav-link:hover {
    background-color: var(--marco-hover);
    color: var(--text-primary);
}

.nav-item[b-pi267t1obb]  .nav-link:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

/* Activo: tarjeta blanca con sombra suave + ícono relleno (el estado no depende solo del fondo) */
.nav-item[b-pi267t1obb]  a.active {
    background-color: var(--surface);
    color: var(--text-primary);
    box-shadow: var(--marco-sombra);
}
.nav-item[b-pi267t1obb]  a.active .material-symbols-rounded {
    font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
}

.nav-texto[b-pi267t1obb] {
    font-size: var(--text-small-size);
    font-weight: var(--weight-medium);
    white-space: nowrap;
}

/* Grupo de cuenta: separado por un filete */
.nav-cuenta[b-pi267t1obb] {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: var(--border-width) solid var(--border);
}

/* Usuario con sesión: solo en el cajón móvil (en escritorio está en el header) */
.nav-usuario[b-pi267t1obb] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    padding: var(--space-2) var(--space-3) var(--space-3);
    color: var(--text-secondary);
    font-size: var(--text-small-size);
}
.nav-usuario .material-symbols-rounded[b-pi267t1obb] { color: var(--text-link); }
.nav-usuario span:last-child[b-pi267t1obb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- Avatar y panel de cuenta (escritorio; reemplaza a la barra superior, 2026-11-03) ---- */
.nav-solo-escritorio[b-pi267t1obb] { display: none; }

.nav-avatar[b-pi267t1obb] {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--text-link);
    font-size: var(--text-caption-size);
    font-weight: var(--weight-semibold);
}
.nav-avatar-grande[b-pi267t1obb] { width: 40px; height: 40px; font-size: var(--text-body-size); }
.nav-item .nav-avatar-boton:hover .nav-avatar[b-pi267t1obb] { background: var(--surface); box-shadow: var(--marco-sombra); }

/* Popover nativo (capa superior: no lo recorta el scroll del menú, se cierra al tocar fuera o con
   Esc). Sin anclaje CSS: el avatar está siempre al pie de la barra, así que el panel se fija abajo
   a su derecha. */
.nav-cuenta-panel[b-pi267t1obb] {
    position: fixed;
    inset: auto auto var(--space-4) calc(var(--sidebar-w-collapsed) + var(--space-2));
    margin: 0;
    width: 260px;
    padding: var(--space-2);
    border: var(--border-width) solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow-md);
    color: var(--text-primary);
}
.nav-cuenta-panel:popover-open[b-pi267t1obb] { display: flex; flex-direction: column; gap: 2px; }

.nav-cuenta-panel-usuario[b-pi267t1obb] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-2) var(--space-3);
    margin-bottom: var(--space-1);
    border-bottom: var(--border-width) solid var(--border);
}
.nav-cuenta-panel-usuario > div[b-pi267t1obb] { display: flex; flex-direction: column; min-width: 0; }
.nav-cuenta-panel-usuario strong[b-pi267t1obb] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--text-small-size);
    font-weight: var(--weight-semibold);
}
.nav-cuenta-panel-usuario span:not(.nav-avatar)[b-pi267t1obb] { font-size: var(--text-caption-size); color: var(--text-secondary); }

.nav-cuenta-panel-opcion[b-pi267t1obb] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    min-height: 40px;
    padding: 0 var(--space-2);
    border: 0;
    border-radius: var(--radius-inner);
    background: none;
    color: var(--text-primary);
    font: inherit;
    font-size: var(--text-small-size);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: var(--transition-control);
}
.nav-cuenta-panel-opcion:hover[b-pi267t1obb] { background: var(--marco-hover); color: var(--text-primary); text-decoration: none; }
.nav-cuenta-panel-opcion:focus-visible[b-pi267t1obb] { outline: none; box-shadow: var(--focus-ring); }
.nav-cuenta-panel-opcion .material-symbols-rounded[b-pi267t1obb] { font-size: 20px; color: var(--text-link); }

/* ---- Cajón (móvil) ---- */
.nav-scrollable[b-pi267t1obb] {
    display: none;
    max-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-4) var(--space-3) var(--space-4);
    background: var(--marco);
    border-bottom: var(--border-width) solid var(--border);
}
.os-nav-toggle:checked ~ .nav-scrollable[b-pi267t1obb] { display: block; }

/* ---- Barra de íconos (escritorio / tableta) ---- */
@media (min-width: 641px) {
    .os-nav-boton[b-pi267t1obb] { display: none; }
    .nav-solo-movil[b-pi267t1obb],
    .nav-usuario[b-pi267t1obb] { display: none; }
    .nav-solo-escritorio[b-pi267t1obb] { display: list-item; }

    .top-row.nav-marca[b-pi267t1obb] { justify-content: center; padding: 0; border-bottom: 0; }

    .nav-scrollable[b-pi267t1obb] {
        display: flex;
        flex-direction: column;
        height: calc(100vh - var(--header-h));
        max-height: none;
        padding: var(--space-4) 0 var(--space-4);
        border-bottom: 0;
    }

    .nav-principal[b-pi267t1obb] {
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        min-height: 0;
    }

    .nav-grupo[b-pi267t1obb] { align-items: center; }
    .nav-grupo-titulo[b-pi267t1obb] { padding: 0; text-align: center; }
    .nav-lista[b-pi267t1obb] { align-items: center; }

    .nav-item[b-pi267t1obb]  .nav-link {
        justify-content: center;
        width: 40px;
        height: 40px;
        min-height: 0;
        padding: 0;
    }

    .nav-cuenta[b-pi267t1obb] { width: 48px; margin-inline: auto; }

    /* Texto oculto pero accesible (nombre del enlace). La etiqueta visible al pasar el puntero o
       enfocar la dibuja wwwroot/js/site.js como .os-nav-tip en posición fija, fuera de la barra:
       como hijo de .nav-scrollable la recortaba su overflow en ventanas bajas (corregido 2026-11-06). */
    .nav-texto[b-pi267t1obb] {
        position: absolute;
        left: calc(100% + var(--space-3));
        top: 50%;
        z-index: 10;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

}

/* Con poca altura (tabletas apaisadas, ventanas bajas) la barra se desplaza;
   con altura suficiente no recorta las etiquetas flotantes. */
@media (min-width: 641px) and (min-height: 700px) {
    .nav-scrollable[b-pi267t1obb] { overflow: visible; }
}
/* /Components/Pages/Movil/MisTickets.razor.rz.scp.css */
.contador[b-fnn66oo60m] {
    margin: 0 0 var(--space-2);
    color: var(--text-secondary);
    font-size: 14px;
}

.tickets[b-fnn66oo60m] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.tarjeta[b-fnn66oo60m] {
    display: grid;
    gap: var(--space-1);
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface, #FFFFFF);
    color: var(--text-primary);
    text-decoration: none;
}

.tarjeta-cabecera[b-fnn66oo60m] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-link);
}

.tarjeta-titulo[b-fnn66oo60m] {
    overflow-wrap: anywhere;
    font-size: 16px;
}

.tarjeta-datos[b-fnn66oo60m] {
    color: var(--text-secondary);
    font-size: 14px;
}

.urgente[b-fnn66oo60m] { color: var(--urgente); }

.marca[b-fnn66oo60m] {
    padding: 1px var(--space-2);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

.marca-urgente[b-fnn66oo60m] {
    background: var(--danger-soft);
    color: var(--urgente);
}

.marca-vencido[b-fnn66oo60m] {
    background: var(--warning-soft);
    color: var(--warning-text);
}
/* /Components/Pages/Movil/TicketMovil.razor.rz.scp.css */
.titulo[b-8hnwa9jsw7] {
    margin: 0 0 var(--space-3);
    font-size: 18px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.titulo span[b-8hnwa9jsw7] { color: var(--text-link); }

.titulo .urgente[b-8hnwa9jsw7] { color: var(--urgente); }

.texto[b-8hnwa9jsw7] {
    margin: 0;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.actividades[b-8hnwa9jsw7] {
    display: grid;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.actividades li + li[b-8hnwa9jsw7] {
    padding-top: var(--space-3);
    border-top: 1px solid var(--border);
}

.fecha[b-8hnwa9jsw7] {
    color: var(--text-secondary);
    font-size: 13px;
}

.respuesta[b-8hnwa9jsw7] { margin-top: var(--space-2); }

section[b-8hnwa9jsw7] { margin-bottom: var(--space-3); }
/* /Components/Pages/Notificaciones/Notificaciones.razor.rz.scp.css */
.dispositivos[b-0rpso8k7hq] {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: 0;
}

.dispositivos li[b-0rpso8k7hq] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--border);
}

.dispositivos li:last-child[b-0rpso8k7hq] { border-bottom: 0; }

.dispositivos li > div[b-0rpso8k7hq] {
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}
