/* /Components/Account/Shared/AuthLayout.razor.rz.scp.css */
.ms-auth[b-0yrddavx4z] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 32px 16px;
    background: var(--ms-bg);
}

.ms-auth__theme[b-0yrddavx4z] {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 10;
    width: 36px;
    height: 36px;
    box-shadow: var(--ms-shadow-xs);
}

.ms-auth__wrap[b-0yrddavx4z] {
    width: 100%;
    max-width: 430px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ms-auth__card[b-0yrddavx4z] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 28px 28px 24px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-xl);
    box-shadow: var(--ms-shadow-sm);
}

.ms-auth__logo[b-0yrddavx4z] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.ms-auth__logo .ms-logo[b-0yrddavx4z] { height: 36px; }

/* El lockup cambia con el tema, igual que en la barra lateral. */
.ms-auth__logo .ms-logo--dark[b-0yrddavx4z] { display: none; }
:root[data-ms-theme="dark"] .ms-auth__logo .ms-logo--light[b-0yrddavx4z] { display: none; }
:root[data-ms-theme="dark"] .ms-auth__logo .ms-logo--dark[b-0yrddavx4z] { display: block; }
/* El logo de oscuro ya viene con tinta clara: sin el realce global de base.css. */
:root[data-ms-theme="dark"] .ms-auth__logo .ms-logo[b-0yrddavx4z] { filter: none; }

.ms-auth__logo .ms-brand-text b[b-0yrddavx4z] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: -.015em;
}

.ms-auth__logo .ms-brand-text b[b-0yrddavx4z]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ms-brand);
    flex: none;
}

.ms-auth__content[b-0yrddavx4z] {
    display: flex;
    flex-direction: column;
}

.ms-auth__content[b-0yrddavx4z]  .alert {
    border-radius: var(--ms-radius);
    font-size: 13px;
}

.ms-auth__content[b-0yrddavx4z]  .alert-danger {
    background: var(--ms-danger-bg);
    border: 1px solid var(--ms-danger-bd);
    color: var(--ms-danger);
}

.ms-auth__content[b-0yrddavx4z]  .alert-success {
    background: var(--ms-success-bg);
    border: 1px solid var(--ms-success-bd);
    color: var(--ms-success);
}

.ms-auth__content[b-0yrddavx4z]  .validation-errors {
    margin: 0 0 16px;
    padding: 11px 13px;
    list-style: none;
    border: 1px solid var(--ms-danger-bd);
    border-left: 3px solid var(--ms-danger);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-danger-bg);
    font-size: 12px;
    color: var(--ms-danger);
}

.ms-auth__content[b-0yrddavx4z]  .validation-message {
    font-size: 11.5px;
    color: var(--ms-danger);
}

.ms-auth__content[b-0yrddavx4z]  .btn-primary {
    width: 100%;
    height: 42px;
    border: 0;
    border-radius: var(--ms-radius);
    background: var(--ms-brand);
    color: var(--ms-on-brand);
    font-family: var(--ms-font);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 6px 16px var(--ms-brand-soft);
    transition: background var(--ms-dur) var(--ms-ease);
}

.ms-auth__content[b-0yrddavx4z]  .btn-primary:hover { background: var(--ms-brand-hover); }

.ms-auth__foot[b-0yrddavx4z] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 11.5px;
    color: var(--ms-text-3);
    text-align: center;
}

@media (max-width: 480px) {
    .ms-auth[b-0yrddavx4z] { align-items: flex-start; padding: 48px 12px 16px; }
    .ms-auth__theme[b-0yrddavx4z] { top: 12px; right: 12px; }
    .ms-auth__card[b-0yrddavx4z] { padding: 22px 18px 18px; border-radius: var(--ms-radius-lg); }
}
/* /Components/FieldsEdit/ImageEditorField.razor.rz.scp.css */
/* ============================================================================
   ImageEditorField — con el lenguaje visual de ms-UI.

   Todo el color sale de los tokens (--ms-*), así que el campo sigue al tema
   claro / oscuro en vez de quedarse con los grises fijos de Bootstrap.
   ========================================================================== */

.ms-imgfield[b-8nnbysg7fx] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

/* --- Lectura: vista previa ------------------------------------------------- */
.ms-imgfield__vista[b-8nnbysg7fx] {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
    cursor: zoom-in;
}
.ms-imgfield__vista:focus-visible[b-8nnbysg7fx] { outline: 2px solid var(--ms-brand); outline-offset: 2px; }

.ms-imgfield__vista img[b-8nnbysg7fx] {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform var(--ms-dur) var(--ms-ease);
}
.ms-imgfield__vista:hover img[b-8nnbysg7fx] { transform: scale(1.03); }

.ms-imgfield__lupa[b-8nnbysg7fx] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: color-mix(in srgb, #000 55%, transparent);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    opacity: 0;
    transition: opacity var(--ms-dur) var(--ms-ease);
}
.ms-imgfield__vista:hover .ms-imgfield__lupa[b-8nnbysg7fx],
.ms-imgfield__vista:focus-visible .ms-imgfield__lupa[b-8nnbysg7fx] { opacity: 1; }

/* --- Lectura: sin imagen -------------------------------------------------- */
.ms-imgfield__vacio[b-8nnbysg7fx] {
    display: grid;
    place-items: center;
    gap: 8px;
    width: 100%;
    aspect-ratio: 16 / 7;
    padding: 0;
    border: 1px dashed var(--ms-border-strong);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
    color: var(--ms-text-4);
    font-size: 12px;
    cursor: pointer;
    transition: border-color var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}
.ms-imgfield__vacio:hover[b-8nnbysg7fx] { border-color: var(--ms-brand); color: var(--ms-text-3); }
.ms-imgfield__vacio:focus-visible[b-8nnbysg7fx] { outline: 2px solid var(--ms-brand); outline-offset: 2px; }
.ms-imgfield__vacio[b-8nnbysg7fx]  .ms-icon { width: 26px; height: 26px; }

/* --- Pie: ruta + acción --------------------------------------------------- */
.ms-imgfield__pie[b-8nnbysg7fx] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.ms-imgfield__ruta[b-8nnbysg7fx] {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--ms-font-mono, monospace);
    font-size: 11px;
    color: var(--ms-text-4);
}
.ms-imgfield__pie > .ms-btn[b-8nnbysg7fx] { flex: none; margin-left: auto; }

/* --- Edición -------------------------------------------------------------- */
.ms-imgfield__editor[b-8nnbysg7fx] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
}

.ms-imgfield__soltar[b-8nnbysg7fx] {
    position: relative;
    display: grid;
    place-items: center;
    padding: 28px 16px;
    border: 1.5px dashed var(--ms-border-strong);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
    transition: border-color var(--ms-dur) var(--ms-ease), background var(--ms-dur) var(--ms-ease);
}
.ms-imgfield__soltar:hover[b-8nnbysg7fx],
.ms-imgfield__soltar:focus-within[b-8nnbysg7fx] {
    border-color: var(--ms-brand);
    background: var(--ms-brand-soft);
}

/* El InputFile real cubre la zona entera, invisible: el clic cae donde sea.
   OJO: InputFile es un COMPONENTE, así que su <input> no lleva el atributo de
   ámbito y hace falta ::deep; sin él se veía el selector de archivo del sistema. */
.ms-imgfield__soltar[b-8nnbysg7fx]  .ms-imgfield__file {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.ms-imgfield__soltar-texto[b-8nnbysg7fx] {
    display: grid;
    justify-items: center;
    gap: 4px;
    pointer-events: none;
    text-align: center;
}
.ms-imgfield__soltar-icono[b-8nnbysg7fx] {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-bottom: 4px;
    border-radius: 50%;
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
}
.ms-imgfield__soltar-icono[b-8nnbysg7fx]  .ms-icon { width: 20px; height: 20px; }
.ms-imgfield__soltar-texto b[b-8nnbysg7fx] { font-size: 13.5px; color: var(--ms-text); }
.ms-imgfield__soltar-hint[b-8nnbysg7fx] { font-size: 11.5px; color: var(--ms-text-4); }
/* El botón es decorativo: quien recibe el clic es el input de encima. */
.ms-imgfield__soltar-texto .ms-btn[b-8nnbysg7fx] { margin-top: 8px; }

.ms-imgfield__recorte[b-8nnbysg7fx] {
    max-height: 60vh;
    overflow: hidden;
    border-radius: var(--ms-radius-xs);
    background: var(--ms-surface-3, var(--ms-surface));
}
.ms-imgfield__recorte img[b-8nnbysg7fx] { display: block; max-width: 100%; }

.ms-imgfield__acciones[b-8nnbysg7fx] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ms-imgfield__encuadre[b-8nnbysg7fx] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-xs);
    background: var(--ms-surface);
}

/* --- Imagen a tamaño completo --------------------------------------------- */
.ms-imgfield__fondo[b-8nnbysg7fx] { position: fixed; inset: 0; }

.ms-imgfield__lightbox[b-8nnbysg7fx] {
    position: relative;
    max-width: min(1100px, 92vw);
    align-self: center;
}
.ms-imgfield__lightbox .ms-modal__header p[b-8nnbysg7fx] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 60ch;
    font-family: var(--ms-font-mono, monospace);
}
.ms-imgfield__lightbox-body[b-8nnbysg7fx] {
    max-height: 76vh;
    padding: 0 16px 16px;
}
.ms-imgfield__lightbox-body img[b-8nnbysg7fx] {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--ms-radius);
}

/* --- Vistas compactas (listas y tarjetas) --------------------------------- */
.ms-imgfield--compacto[b-8nnbysg7fx] { width: 100%; }

.ms-imgfield--linea[b-8nnbysg7fx] {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.ms-imgfield--linea .ms-imgfield__vista[b-8nnbysg7fx],
.ms-imgfield--linea .ms-imgfield__vacio[b-8nnbysg7fx] {
    flex: none;
    width: 64px;
    aspect-ratio: 1;
}
.ms-imgfield--linea .ms-imgfield__vista img[b-8nnbysg7fx] { aspect-ratio: 1; }
.ms-imgfield--linea .ms-imgfield__vacio span[b-8nnbysg7fx] { display: none; }
.ms-imgfield--linea .ms-imgfield__vacio[b-8nnbysg7fx]  .ms-icon { width: 20px; height: 20px; }
.ms-imgfield--linea .ms-imgfield__lupa span[b-8nnbysg7fx] { display: none; }
.ms-imgfield--linea .ms-imgfield__pie[b-8nnbysg7fx] { flex: 1 1 200px; }

.ms-imgfield--tarjeta[b-8nnbysg7fx] {
    padding: 12px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
}
.ms-imgfield--tarjeta .ms-imgfield__vista img[b-8nnbysg7fx],
.ms-imgfield--tarjeta .ms-imgfield__vacio[b-8nnbysg7fx] { aspect-ratio: 4 / 3; }

@media (max-width: 575.98px) {
    .ms-imgfield__pie[b-8nnbysg7fx] { flex-wrap: wrap; }
    .ms-imgfield__ruta[b-8nnbysg7fx] { flex-basis: 100%; }
}
/* /Components/Layout/AppFooter.razor.rz.scp.css */
/* AppFooter — se alinea con el mismo ancho máximo y los mismos márgenes
   laterales que el contenido de la página. */

.ms-footer[b-8huucdzmgu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    width: 100%;
    max-width: var(--ms-page-max);
    margin-inline: auto;
    padding: 18px var(--ms-gutter) 26px;
    font-size: var(--ms-fs-xs);
    color: var(--ms-text-3);
}

.ms-footer__links[b-8huucdzmgu] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ms-footer__links a:hover[b-8huucdzmgu] { color: var(--ms-brand); }

.ms-footer__link[b-8huucdzmgu] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
.ms-footer__link:hover[b-8huucdzmgu] { color: var(--ms-brand); }

@media (max-width: 767.98px) {
    .ms-footer[b-8huucdzmgu] { flex-direction: column; align-items: flex-start; }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ============================================================================
   MainLayout — sólo el enlace de salto y el aviso de error de Blazor.
   La rejilla del esqueleto vive en wwwroot/css/layout.css porque la comparten
   componentes de los dos proyectos y el aislamiento CSS de Blazor es por
   componente.
   ========================================================================== */

#blazor-error-ui[b-iwm2objbxy] {
    display: none;
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 1100;
    width: 100%;
    padding: 12px 20px;
    background: var(--ms-danger-bg);
    border-top: 1px solid var(--ms-danger-bd);
    color: var(--ms-danger);
    font-size: 13px;
    font-weight: 600;
}

#blazor-error-ui .reload[b-iwm2objbxy] { text-decoration: underline; }

#blazor-error-ui .dismiss[b-iwm2objbxy] {
    position: absolute;
    right: 14px;
    top: 10px;
    cursor: pointer;
}
/* /Components/Layout/NavDropdown.razor.rz.scp.css */
/* ============================================================================
   NavDropdown — cabecera NavItem + chevron, con subpestañas indentadas.
   La cabecera es el componente NavItem (sus estilos aislados no se pueden
   duplicar aquí), así que se le alcanza con ::deep.
   ========================================================================== */

.ms-nav__drop[b-57el8go4bj] { display: block; }
.ms-nav__drop + .ms-nav__item[b-57el8go4bj],
.ms-nav__item + .ms-nav__drop[b-57el8go4bj],
.ms-nav__drop + .ms-nav__drop[b-57el8go4bj] { margin-top: 2px; }

.ms-nav__drop-head[b-57el8go4bj] {
    display: flex;
    align-items: center;
    gap: 2px;
}

/* El NavItem de cabecera ocupa todo el ancho menos el chevron. */
.ms-nav__drop-head[b-57el8go4bj]  .ms-nav__item { flex: 1 1 auto; min-width: 0; }

/* Grupo activo (alguna subpestaña abierta): la cabecera lo insinúa. */
.ms-nav__drop.is-active > .ms-nav__drop-head[b-57el8go4bj]  .ms-nav__item { color: var(--ms-brand); }

.ms-nav__drop-chev[b-57el8go4bj] {
    flex: none;
    width: 26px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--ms-text-3);
    border-radius: var(--ms-radius-sm);
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}
.ms-nav__drop-chev:hover[b-57el8go4bj] { background: var(--ms-surface-2); color: var(--ms-text); }
.ms-nav__drop-chev[b-57el8go4bj]  .ms-icon { transition: transform var(--ms-dur) var(--ms-ease); }
.ms-nav__drop.is-open .ms-nav__drop-chev[b-57el8go4bj]  .ms-icon { transform: rotate(180deg); }

/* Hijos: indentados con guía lateral */
.ms-nav__drop-items[b-57el8go4bj] {
    display: flex;
    flex-direction: column;
    margin: 2px 0 2px 17px;
    padding-left: 8px;
    border-left: 1px solid var(--ms-border);
}
.ms-nav__drop-items[hidden][b-57el8go4bj] { display: none; }

.ms-nav__drop-items[b-57el8go4bj]  .ms-nav__item {
    height: 33px;
    font-size: 12.5px;
}
.ms-nav__drop-items[b-57el8go4bj]  .ms-nav__item.is-active::before { display: none; }

/* ============================================================================
   MODO MINIFICADO: sólo el icono de la cabecera; los hijos no caben.
   (El texto del NavItem lo oculta su propio CSS de mini.)
   ========================================================================== */
:root.is-mini .ms-nav__drop-chev[b-57el8go4bj],
:root.is-mini .ms-nav__drop-items[b-57el8go4bj] { display: none; }
:root.is-mini .ms-nav__drop-head[b-57el8go4bj] { justify-content: center; }
:root.is-mini .ms-nav__drop-head[b-57el8go4bj]  .ms-nav__item {
    flex: none;
    justify-content: center;
    padding-inline: 0;
}

/* En el cajón móvil la barra siempre va completa. */
@media (max-width: 991.98px) {
    :root.is-mini .ms-nav__drop-chev[b-57el8go4bj] { display: inline-flex; }
    :root.is-mini .ms-nav__drop-items[b-57el8go4bj] { display: flex; }
    :root.is-mini .ms-nav__drop-head[b-57el8go4bj] { justify-content: flex-start; }
    :root.is-mini .ms-nav__drop-head[b-57el8go4bj]  .ms-nav__item {
        flex: 1 1 auto;
        justify-content: flex-start;
        padding-inline: 10px;
    }
}
/* /Components/Layout/NavItem.razor.rz.scp.css */
/* ============================================================================
   NavItem — una entrada del menú lateral, incluido su comportamiento en el
   modo minificado (sólo iconos) con tooltip propio sin JavaScript.
   ========================================================================== */

.ms-nav__item[b-k0dvjs7hvv] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    height: 36px;
    padding: 0 10px;
    border-radius: var(--ms-radius-sm);
    color: var(--ms-text-2);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    text-decoration: none;
    transition: background var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}

.ms-nav__item + .ms-nav__item[b-k0dvjs7hvv] { margin-top: 2px; }

.ms-nav__item:hover[b-k0dvjs7hvv] { background: var(--ms-surface-2); color: var(--ms-text); }

.ms-nav__item.is-active[b-k0dvjs7hvv] {
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
    font-weight: 600;
}

/* Marca vertical a la izquierda de la entrada activa */
.ms-nav__item.is-active[b-k0dvjs7hvv]::before {
    content: "";
    position: absolute;
    left: -12px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 20px;
    border-radius: 0 3px 3px 0;
    background: var(--ms-brand);
}

.ms-nav__text[b-k0dvjs7hvv] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ms-nav__badge[b-k0dvjs7hvv] {
    flex: none;
    min-width: 19px;
    height: 18px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ms-radius-pill);
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
    font-size: 10px;
    font-weight: 700;
}

.ms-nav__badge--neutral[b-k0dvjs7hvv] { background: var(--ms-neutral-bg); color: var(--ms-text-2); }

/* ============================================================================
   MODO MINIFICADO (72 px): sólo el icono, con tooltip al pasar el ratón
   ========================================================================== */
:root.is-mini .ms-nav__text[b-k0dvjs7hvv],
:root.is-mini .ms-nav__badge[b-k0dvjs7hvv] { display: none; }

:root.is-mini .ms-nav__item[b-k0dvjs7hvv] { justify-content: center; padding-inline: 0; }

:root.is-mini .ms-nav__item[b-k0dvjs7hvv]::after {
    content: attr(data-tip);
    position: absolute;
    left: calc(100% + 12px);
    top: 50%;
    transform: translateY(-50%) translateX(-4px);
    padding: 5px 10px;
    background: var(--ms-text);
    color: var(--ms-surface);
    font-size: 11.5px;
    font-weight: 500;
    white-space: nowrap;
    border-radius: var(--ms-radius-sm);
    box-shadow: var(--ms-shadow-md);
    opacity: 0;
    pointer-events: none;
    z-index: 1060;
    transition: opacity var(--ms-dur) var(--ms-ease), transform var(--ms-dur) var(--ms-ease);
}

:root.is-mini .ms-nav__item:hover[b-k0dvjs7hvv]::after { opacity: 1; transform: translateY(-50%) translateX(0); }

/* En el cajón móvil la barra siempre se muestra completa, aunque quede
   guardado el modo minificado del escritorio. */
@media (max-width: 991.98px) {
    :root.is-mini .ms-nav__text[b-k0dvjs7hvv] { display: block; }
    :root.is-mini .ms-nav__badge[b-k0dvjs7hvv] { display: inline-flex; }
    :root.is-mini .ms-nav__item[b-k0dvjs7hvv] { justify-content: flex-start; padding-inline: 10px; }
    :root.is-mini .ms-nav__item[b-k0dvjs7hvv]::after { content: none; }
}
/* /Components/Layout/NavSidebar.razor.rz.scp.css */
/* ============================================================================
   NavSidebar — contenedor de la navegación: marca, grupos y perfil.
   Las entradas del menú tienen su propio CSS en NavItem.razor.css.
   ========================================================================== */

.ms-sidebar[b-023a12hu37] {
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--ms-surface);
    border-right: 1px solid var(--ms-border);
    overflow: hidden;
}

/* --- Marca ---------------------------------------------------------------- */
.ms-sidebar__brand[b-023a12hu37] {
    display: flex;
    align-items: center;
    gap: 10px;
    height: var(--ms-topbar-h);
    padding: 0 10px 0 16px;
    border-bottom: 1px solid var(--ms-border);
    flex: none;
    min-width: 0;
}

.ms-sidebar__logo[b-023a12hu37] { display: flex; align-items: center; gap: 10px; min-width: 0; text-decoration: none; }

/* El lockup cambia con el tema: en claro, tinta oscura; en oscuro, tinta blanca.
   Al contraer la barra, los dos lockups se ocultan y queda sólo el icono. */
.ms-sidebar__logo .ms-logo--dark[b-023a12hu37],
.ms-sidebar__logo .ms-logo--icon[b-023a12hu37] { display: none; }

:root[data-ms-theme="dark"] .ms-sidebar__logo .ms-logo--light[b-023a12hu37] { display: none; }
:root[data-ms-theme="dark"] .ms-sidebar__logo .ms-logo--dark[b-023a12hu37] { display: block; }
/* El logo de oscuro ya viene con tinta clara: sin el realce global de base.css. */
:root[data-ms-theme="dark"] .ms-sidebar__logo .ms-logo[b-023a12hu37] { filter: none; }

:root.is-mini .ms-sidebar__logo .ms-logo--light[b-023a12hu37],
:root.is-mini .ms-sidebar__logo .ms-logo--dark[b-023a12hu37] { display: none; }
:root.is-mini .ms-sidebar__logo .ms-logo--icon[b-023a12hu37] { display: block; width: 26px; height: 26px; }

.ms-sidebar__collapse[b-023a12hu37] {
    margin-left: auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--ms-text-3);
    border-radius: var(--ms-radius-sm);
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}
.ms-sidebar__collapse:hover[b-023a12hu37] { background: var(--ms-surface-3); color: var(--ms-text); }

/* --- Grupos --------------------------------------------------------------- */
.ms-nav[b-023a12hu37] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 14px 12px 10px;
}

.ms-nav__group + .ms-nav__group[b-023a12hu37] { margin-top: 16px; }

.ms-nav__label[b-023a12hu37] {
    padding: 6px 10px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--ms-text-3);
    white-space: nowrap;
}

/* --- Etiquetas de grupo dentro de un desplegable (p. ej. BBDD) --------------
   El <p> se escribe en NavSidebar.razor, así que su estilo vive aquí:
   el CSS aislado de NavDropdown no lo alcanzaría. */
.ms-nav__drop-label[b-023a12hu37] {
    padding: 8px 10px 3px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--ms-text-3);
    white-space: nowrap;
}
.ms-nav__drop-label:first-child[b-023a12hu37] { padding-top: 4px; }

/* --- Pie de la barra lateral — perfil de usuario ---------------------------- */
.ms-sidebar__foot[b-023a12hu37] {
    flex: none;
    padding: 10px;
    border-top: 1px solid var(--ms-border);
    background: var(--ms-surface);
}

.ms-sidebar__profile[b-023a12hu37] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 8px 8px 8px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
    cursor: pointer;
    text-align: left;
    transition: background var(--ms-dur) var(--ms-ease), border-color var(--ms-dur) var(--ms-ease);
}
.ms-sidebar__profile:hover[b-023a12hu37],
.ms-sidebar__profile[aria-expanded="true"][b-023a12hu37] {
    background: var(--ms-surface-2);
    border-color: var(--ms-border-strong);
}
.ms-sidebar__profile-meta[b-023a12hu37] { flex: 1; min-width: 0; line-height: 1.25; text-align: left; }
.ms-sidebar__profile-meta b[b-023a12hu37] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ms-sidebar__profile-meta span[b-023a12hu37] {
    display: block;
    font-size: 11px;
    color: var(--ms-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ms-sidebar__profile-chev[b-023a12hu37] { color: var(--ms-text-3); flex: none; transition: transform var(--ms-dur) var(--ms-ease); }
.ms-sidebar__profile[aria-expanded="true"][b-023a12hu37]  .ms-sidebar__profile-chev { transform: rotate(180deg); }

.ms-sidebar__profile-pop[b-023a12hu37] { position: relative; }
.ms-sidebar__profile-pop .ms-menu[b-023a12hu37] {
    top: auto;
    bottom: calc(100% + 10px);
    left: 0;
    right: 0;
    min-width: 0;
    width: 100%;
}
/* Menú del perfil: nunca más ancho que la ventana en móvil */
@media (max-width: 575.98px) {
    .ms-sidebar__profile-pop .ms-menu[b-023a12hu37] {
        min-width: 280px;
        width: min(320px, calc(100vw - 24px));
    }
}

/* El formulario de cierre de sesión mantiene el aspecto de ms-menu__item */
.ms-sidebar__foot form[b-023a12hu37] { display: block; }

/* ============================================================================
   MODO MINIFICADO
   ========================================================================== */
:root.is-mini .ms-sidebar[b-023a12hu37] { overflow: visible; z-index: 1025; }
:root.is-mini .ms-nav[b-023a12hu37] { overflow: visible; }

:root.is-mini .ms-sidebar__brand[b-023a12hu37] { justify-content: center; padding: 0 12px; position: relative; }

/* Contraída, la marca se reduce al icono cuadrado (ms-logo--icon). */

/* Perfil colapsado: sólo avatar centrado, con tooltip */
:root.is-mini .ms-sidebar__foot[b-023a12hu37] {
    display: block;
    padding: 10px 8px;
    border-top: 1px solid var(--ms-border);
}
:root.is-mini .ms-sidebar__profile[b-023a12hu37] {
    justify-content: center;
    padding: 6px 0;
    border-color: transparent;
    background: transparent;
}
:root.is-mini .ms-sidebar__profile:hover[b-023a12hu37] {
    background: var(--ms-surface-2);
    border-color: var(--ms-border);
}
:root.is-mini .ms-sidebar__profile-meta[b-023a12hu37],
:root.is-mini .ms-sidebar__profile-chev[b-023a12hu37] { display: none; }

/* Menú del perfil en modo mini: flyout a la derecha, como los tooltips de NavItem */
:root.is-mini .ms-sidebar__profile-pop .ms-menu[b-023a12hu37] {
    top: 0;
    bottom: auto;
    left: calc(100% + 12px);
    right: auto;
    width: 320px;
    min-width: 320px;
}

/* El botón de colapso pasa a flotar sobre el borde: sin él no habría forma
   de volver a expandir la barra con el ratón. */
:root.is-mini .ms-sidebar__collapse[b-023a12hu37] {
    position: absolute;
    right: -14px;
    top: 18px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: 50%;
    box-shadow: var(--ms-shadow-sm);
    color: var(--ms-text-2);
    z-index: 1030;
}
:root.is-mini .ms-sidebar__collapse:hover[b-023a12hu37] { border-color: var(--ms-brand); color: var(--ms-brand); }
:root.is-mini .ms-sidebar__collapse[b-023a12hu37]  .ms-icon { transform: rotate(180deg); }

/* Las etiquetas del desplegable no caben minificadas: se ocultan. */
:root.is-mini .ms-nav__drop-label[b-023a12hu37] { display: none; }

/* La etiqueta del grupo se convierte en una línea divisoria. */
:root.is-mini .ms-nav__label[b-023a12hu37] {
    overflow: hidden;
    height: 1px;
    padding: 0;
    margin: 14px 8px;
    background: var(--ms-border);
    color: transparent;
}

/* ============================================================================
   MÓVIL Y TABLETA: la barra lateral se convierte en un cajón deslizante
   ========================================================================== */
@media (max-width: 991.98px) {
    .ms-sidebar[b-023a12hu37] {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1040;
        width: var(--ms-sidebar-w) !important;
        transform: translateX(-100%);
        transition: transform .22s var(--ms-ease);
        box-shadow: var(--ms-shadow-lg);
        overflow: hidden !important;
    }

    body.ms-drawer-open .ms-sidebar[b-023a12hu37] { transform: translateX(0); }

    /* Se ignora el modo minificado guardado del escritorio. */
    :root.is-mini .ms-sidebar__brand[b-023a12hu37] { justify-content: flex-start; padding: 0 10px 0 16px; position: static; }
    :root.is-mini .ms-sidebar__foot[b-023a12hu37] { display: block; padding: 10px; }
    :root.is-mini .ms-nav[b-023a12hu37] { overflow-y: auto; overflow-x: hidden; }
    :root.is-mini .ms-sidebar__profile[b-023a12hu37] { justify-content: flex-start; padding: 8px; border-color: var(--ms-border); background: var(--ms-surface); }
    :root.is-mini .ms-sidebar__profile-meta[b-023a12hu37] { display: block; }
    :root.is-mini .ms-sidebar__profile-chev[b-023a12hu37] { display: flex; }
    :root.is-mini .ms-sidebar__profile-pop .ms-menu[b-023a12hu37] {
        top: auto; bottom: calc(100% + 10px); left: 0; right: 0; width: 100%; min-width: 0;
    }
    :root.is-mini .ms-nav__label[b-023a12hu37] {
        height: auto;
        padding: 6px 10px;
        margin: 0;
        background: none;
        color: var(--ms-text-3);
    }
    :root.is-mini .ms-nav__drop-label[b-023a12hu37] {
        display: block;
        padding: 8px 10px 3px;
    }
    :root.is-mini .ms-sidebar__collapse[b-023a12hu37] {
        position: static;
        background: transparent;
        border: 0;
        border-radius: var(--ms-radius-sm);
        box-shadow: none;
    }
    :root.is-mini .ms-sidebar__collapse[b-023a12hu37]  .ms-icon { transform: none; }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-z79eaobd5s],
.components-reconnect-repeated-attempt-visible[b-z79eaobd5s],
.components-reconnect-failed-visible[b-z79eaobd5s],
.components-pause-visible[b-z79eaobd5s],
.components-resume-failed-visible[b-z79eaobd5s],
.components-rejoining-animation[b-z79eaobd5s] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-retrying[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-failed[b-z79eaobd5s],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-z79eaobd5s] {
    display: block;
}


#components-reconnect-modal[b-z79eaobd5s] {
    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-z79eaobd5s 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-z79eaobd5s 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-z79eaobd5s 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-z79eaobd5s]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-z79eaobd5s 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-z79eaobd5s {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-z79eaobd5s {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-z79eaobd5s {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-z79eaobd5s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-z79eaobd5s] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-z79eaobd5s] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-z79eaobd5s] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-z79eaobd5s] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-z79eaobd5s] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-z79eaobd5s] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-z79eaobd5s 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-z79eaobd5s] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-z79eaobd5s {
    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/Layout/TopBar.razor.rz.scp.css */
/* ============================================================================
   TopBar — barra superior fija. Los botones de icono, los chips y los menús
   son piezas del sistema de diseño (controls.css / overlays.css); aquí sólo
   está lo propio de esta barra: reparto, idioma y apariencia.
   ========================================================================== */

.ms-topbar[b-erxfc3lhlp] {
    position: sticky;
    top: 0;
    z-index: 1020;
    flex: none;
    height: var(--ms-topbar-h);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 var(--ms-gutter);
    /* Fondo opaco a propósito: un backdrop-filter aquí crearía un bloque
       contenedor y descolocaría los menús anclados. */
    background: var(--ms-surface);
    border-bottom: 1px solid var(--ms-border);
}

.ms-topbar__spacer[b-erxfc3lhlp] { flex: 1; }

/* ============================================================================
   ORGANIZACIÓN ACTIVA
   ========================================================================== */
.ms-topbar__org[b-erxfc3lhlp] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 300px;
    max-width: 36vw;
    height: 42px;
    padding: 4px 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
    color: var(--ms-text-2);
    cursor: pointer;
    text-align: left;
    transition: border-color var(--ms-dur) var(--ms-ease), background var(--ms-dur) var(--ms-ease),
                box-shadow var(--ms-dur) var(--ms-ease);
}

.ms-topbar__org:hover[b-erxfc3lhlp] { border-color: var(--ms-brand); background: var(--ms-surface); }
.ms-topbar__org:focus-visible[b-erxfc3lhlp] { border-color: var(--ms-brand); box-shadow: var(--ms-ring); outline: none; }

.ms-topbar__org-name[b-erxfc3lhlp] {
    flex: 1;
    min-width: 0;
    font-family: var(--ms-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
}

.ms-topbar__org-chev[b-erxfc3lhlp] { color: var(--ms-text-3); flex: none; }

.ms-topbar__current[b-erxfc3lhlp] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    max-width: 360px;
    height: 42px;
    padding: 4px 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
    color: var(--ms-text-2);
}

.ms-topbar__current-meta[b-erxfc3lhlp] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.ms-topbar__current-meta b[b-erxfc3lhlp] {
    font-size: 12.5px;
    color: var(--ms-text);
}

.ms-topbar__current-meta span[b-erxfc3lhlp] {
    font-size: 10.5px;
    color: var(--ms-text-3);
}

.ms-topbar__current-close[b-erxfc3lhlp] {
    margin-left: auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
    color: var(--ms-text-3);
    cursor: pointer;
}

.ms-topbar__current-close:hover[b-erxfc3lhlp] {
    color: var(--ms-text);
    border-color: var(--ms-brand-border);
}

@media (max-width: 991.98px) {
    .ms-topbar__org[b-erxfc3lhlp] {
        width: 220px;
        max-width: 40vw;
    }

    .ms-topbar__current[b-erxfc3lhlp] { display: none; }
}

.ms-topbar__actions[b-erxfc3lhlp] { display: flex; align-items: center; gap: 8px; }

.ms-topbar__toggle[b-erxfc3lhlp] {
    display: none;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ms-border);
    background: var(--ms-surface);
    color: var(--ms-text-2);
    border-radius: var(--ms-radius);
    cursor: pointer;
}
@media (max-width: 991.98px) { .ms-topbar__toggle[b-erxfc3lhlp] { display: inline-flex; } }

/* ============================================================================
   BUSCADOR GLOBAL
   ========================================================================== */
.ms-search-trigger[b-erxfc3lhlp] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 300px;
    height: 34px;
    padding: 0 8px 0 11px;
    background: var(--ms-surface-2);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    color: var(--ms-text-3);
    font-size: 12.5px;
    cursor: pointer;
    text-align: left;
    transition: border-color var(--ms-dur) var(--ms-ease), background var(--ms-dur) var(--ms-ease);
}
.ms-search-trigger:hover[b-erxfc3lhlp] { border-color: var(--ms-brand); background: var(--ms-surface); }
.ms-search-trigger > span:first-of-type[b-erxfc3lhlp] { flex: 1; }

@media (max-width: 1199.98px) {
    .ms-search-trigger[b-erxfc3lhlp] { width: 34px; padding: 0; justify-content: center; }
    .ms-search-trigger > span[b-erxfc3lhlp] { display: none; }
}

/* ============================================================================
   IDIOMA
   ========================================================================== */
.ms-lang-btn[b-erxfc3lhlp] { width: auto; padding: 0 9px; gap: 6px; }

.ms-lang-btn__code[b-erxfc3lhlp] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .04em;
}

/* Nota al pie de un desplegable: aclara el alcance sin ocupar sitio. */
.ms-menu__note[b-erxfc3lhlp] {
    padding: 2px 10px 6px;
    font-size: 10.5px;
    line-height: 1.5;
    color: var(--ms-text-3);
}

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 767.98px) {
    .ms-topbar[b-erxfc3lhlp] { padding: 0 14px; gap: 8px; }
    .ms-topbar__org[b-erxfc3lhlp] {
        width: 34px;
        padding: 0;
        justify-content: center;
    }

    .ms-topbar__org-name[b-erxfc3lhlp] {
        display: none;
    }

    .ms-topbar__org-chev[b-erxfc3lhlp] { display: none; }

    .ms-hide-sm[b-erxfc3lhlp] { display: none; }
    .ms-lang-btn__code[b-erxfc3lhlp] { display: none; }
    .ms-lang-btn[b-erxfc3lhlp] { width: 34px; padding: 0; }
    .ms-search-trigger[b-erxfc3lhlp] { margin-left: auto; }
}
/* /Components/Pages/Admin/BbddAdmin.razor.rz.scp.css */
/* ============================================================================
   BBDD — CRUD del modelo elegido en su subpestaña.
   La navegación entre modelos vive en el desplegable BBDD del sidebar.
   ========================================================================== */

.ms-bbdd__panel[b-4x9jpp8dfw] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    margin-top: 16px;
}

.ms-bbdd__cab[b-4x9jpp8dfw] {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
}

.ms-bbdd__cab-icono[b-4x9jpp8dfw] {
    display: grid;
    place-items: center;
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: var(--ms-radius);
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
}

.ms-bbdd__cab-texto[b-4x9jpp8dfw] { flex: 1 1 auto; min-width: 0; }
.ms-bbdd__cab-texto h2[b-4x9jpp8dfw] { margin: 0; font-size: 15px; font-weight: 700; }
.ms-bbdd__cab-texto p[b-4x9jpp8dfw] { margin: 2px 0 0; font-size: 12.5px; color: var(--ms-text-3); }
/* /Components/Pages/CategoryQuickCreate.razor.rz.scp.css */
/* La casilla «Otro» grupo la pinta InputText: sin atributo de ámbito. */
.ms-modal[b-r4tyganqmm]  .ms-catq__otro { width: 120px; height: 28px; padding: 0 8px; font-size: 12px; }
/* /Components/Pages/ChampionshipEditor.razor.rz.scp.css */

.ms-sheet[b-280rb7dv18] {
    grid-area: 1 / 1;
    z-index: 2;
    background: var(--ms-bg);
    animation: ms-sheet-in-b-280rb7dv18 .18s var(--ms-ease);
    scroll-margin-top: calc(var(--ms-topbar-h) + 16px);
}

@keyframes ms-sheet-in-b-280rb7dv18 {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ms-sheet[b-280rb7dv18] { animation: none; }
}

/* Con el modal de categoría abierto, la hoja sube por encima de la barra superior
   y la lateral: si no, su contexto de apilamiento (z-index 2) las dejaría encima
   del fondo oscuro del modal. */
.ms-sheet.is-modal[b-280rb7dv18] { z-index: 1075; }

.ms-sheet[b-280rb7dv18]  form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ms-sheet__bar[b-280rb7dv18] {
    position: sticky;
    top: var(--ms-topbar-h);
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-lg);
    box-shadow: var(--ms-shadow-sm);
}

.ms-sheet__ident[b-280rb7dv18] { display: flex; align-items: center; gap: 11px; min-width: 0; }
.ms-sheet__ident-text[b-280rb7dv18] { min-width: 0; }
.ms-sheet__ident-text h1[b-280rb7dv18] {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ms-text);
    line-height: 1.3;
}

.ms-sheet__bar-end[b-280rb7dv18] { display: flex; align-items: center; gap: 8px; margin-left: auto; flex: none; }

.ms-sheet__inner[b-280rb7dv18] { display: flex; flex-direction: column; gap: 16px; padding-bottom: 8px; }

.ms-camp-sheet__nav[b-280rb7dv18] { display: inline-flex; align-items: center; gap: 2px; flex: none; }
.ms-camp-sheet__pos[b-280rb7dv18] {
    min-width: 52px;
    text-align: center;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ms-text-3);
    font-variant-numeric: tabular-nums;
}
.ms-camp-sheet__nav button:disabled[b-280rb7dv18] { opacity: .35; pointer-events: none; }

.ms-camp-sheet__danger:hover[b-280rb7dv18] { color: var(--ms-danger); background: var(--ms-danger-bg); }

/* --- Resumen --------------------------------------------------------------- */
.ms-camp-hero__cover[b-280rb7dv18] {
    height: 112px;
    background: linear-gradient(120deg, var(--ms-brand-soft-hover), var(--ms-purple-bg) 55%, var(--ms-info-bg));
}
.ms-camp-hero__cover img[b-280rb7dv18] { width: 100%; height: 100%; object-fit: cover; }

.ms-camp-hero__body[b-280rb7dv18] {
    position: relative;
    display: flex;
    align-items: flex-end;
    gap: 16px;
    margin-top: -30px;
    padding: 0 20px 16px;
}

.ms-camp-hero__markwrap[b-280rb7dv18] {
    flex: none;
    padding: 4px;
    border-radius: 16px;
    background: var(--ms-surface);
    box-shadow: var(--ms-shadow-sm);
}
.ms-camp-hero__mark[b-280rb7dv18] { --size: 64px; border-radius: 12px; }

.ms-camp-hero__text[b-280rb7dv18] { min-width: 0; }
.ms-camp-hero__text h2[b-280rb7dv18] { font-size: 20px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; }
.ms-camp-hero__chips[b-280rb7dv18] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

/* Pestañas al pie del resumen: cambian entre la ficha y los eventos. */
.ms-camp-hero__tabs[b-280rb7dv18] {
    display: flex;
    border-top: 1px solid var(--ms-border-soft);
    background: var(--ms-surface-2);
}
.ms-camp-hero__tab[b-280rb7dv18] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border: 0;
    border-right: 1px solid var(--ms-border-soft);
    background: none;
    color: var(--ms-text-3);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: color var(--ms-dur) var(--ms-ease), background var(--ms-dur) var(--ms-ease);
}
.ms-camp-hero__tab[b-280rb7dv18]  .ms-icon { width: 16px; height: 16px; }
.ms-camp-hero__tab:hover[b-280rb7dv18] { color: var(--ms-text); }
.ms-camp-hero__tab:focus-visible[b-280rb7dv18] { outline: 2px solid var(--ms-brand); outline-offset: -2px; }
.ms-camp-hero__tab.is-active[b-280rb7dv18] { color: var(--ms-brand); background: var(--ms-surface); }
.ms-camp-hero__tab.is-active[b-280rb7dv18]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--ms-brand);
}

/* En «Eventos» estas mismas pestañas las pinta Eventos dentro de la barra del
   evento: ahí van sin fondo ni borde propio y más compactas. */
.ms-eventos__barra .ms-camp-hero__tabs[b-280rb7dv18] {
    flex: none;
    border-top: 0;
    background: none;
}

/* La lista pegajosa de Eventos queda bajo la barra de la ficha, no debajo de ella. */
.ms-camp-sheet__eventos[b-280rb7dv18]  .ms-eventos__lista { top: calc(var(--ms-topbar-h) + 90px); }

/* --- Formulario ------------------------------------------------------------ */
.ms-camp-sheet__fechas[b-280rb7dv18] { display: flex; align-items: center; gap: 6px; margin-top: -8px; }

.ms-camp-sheet__item[b-280rb7dv18] { width: 100%; border: 0; background: none; text-align: left; cursor: pointer; color: inherit; }

/* --- Grupos de botones ----------------------------------------------------- */
.ms-camp-sheet__grupos[b-280rb7dv18] { display: flex; flex-direction: column; gap: 18px; }

/* «Contenido › Categorías» enfoca la tarjeta: que no quede bajo la barra pegajosa. */
.ms-camp-sheet__seccion[b-280rb7dv18] { scroll-margin-top: calc(var(--ms-topbar-h) + 90px); }
.ms-camp-sheet__seccion:focus[b-280rb7dv18] { outline: none; }
.ms-camp-sheet__buscar[b-280rb7dv18] { max-width: 340px; margin-bottom: 4px; }

/* La casilla «Otra» temporada la pinta InputNumber: sin atributo de ámbito. */
.ms-sheet[b-280rb7dv18]  .ms-camp-sheet__otra { width: 92px; height: 28px; padding: 0 8px; font-size: 12px; }

/* Fecha de inicio con botón «Hoy» al lado: el input crece y el botón se ajusta. */
.ms-camp-sheet__fecha[b-280rb7dv18] { display: flex; align-items: center; gap: 8px; }
.ms-camp-sheet__fecha[b-280rb7dv18]  .ms-input { flex: 1 1 auto; min-width: 0; }
.ms-camp-sheet__fecha > .ms-btn[b-280rb7dv18] { flex: none; }

/* --- Imagen ---------------------------------------------------------------- */
.ms-camp-preview[b-280rb7dv18] {
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    border: 1px dashed var(--ms-border-strong);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
    color: var(--ms-text-4);
}
.ms-camp-preview img[b-280rb7dv18] { width: 100%; height: 100%; object-fit: cover; }
.ms-camp-preview[b-280rb7dv18]  .ms-icon { width: 28px; height: 28px; }

/* --- Estrecho -------------------------------------------------------------- */
@media (max-width: 767.98px) {
    .ms-sheet__bar[b-280rb7dv18] { padding: 10px 12px; gap: 8px; flex-wrap: wrap; }
    .ms-sheet__bar > .ms-divider-v[b-280rb7dv18] { display: none; }
    .ms-sheet__ident[b-280rb7dv18] { order: 3; width: 100%; }
    .ms-sheet__bar-end[b-280rb7dv18] { gap: 6px; }
    .ms-sheet__bar-end > .ms-btn--ghost[b-280rb7dv18] { display: none; }

    .ms-camp-hero__body[b-280rb7dv18] { flex-direction: column; align-items: flex-start; gap: 10px; padding: 0 16px 14px; }
    .ms-camp-hero__tab[b-280rb7dv18] { flex: 1; justify-content: center; padding: 10px 12px; }
}
/* /Components/Pages/ChampionshipsManager.razor.rz.scp.css */
/* ============================================================================
   ChampionshipsManager — listado de campeonatos (tabla o tarjetas).
   Misma pila que Usuarios: la ficha se apila encima y el listado no se
   desmonta, así que al volver conserva búsqueda, filtros, selección y scroll.
   ========================================================================== */

.ms-camp__pila[b-u9fc4c23yu] { display: grid; flex: 1; }

.ms-camp__base[b-u9fc4c23yu] {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-self: start;
    min-width: 0;
}

/* --- KPI que además filtran ----------------------------------------------- */
.ms-camp__kpis[b-u9fc4c23yu] { gap: 12px; }

.ms-camp__kpi[b-u9fc4c23yu] { border-radius: var(--ms-radius-lg); cursor: pointer; }
.ms-camp__kpi[b-u9fc4c23yu]  .ms-kpi {
    height: 100%;
    transition: box-shadow var(--ms-dur) var(--ms-ease), transform var(--ms-dur) var(--ms-ease);
}
.ms-camp__kpi:hover[b-u9fc4c23yu]  .ms-kpi { transform: translateY(-2px); box-shadow: var(--ms-shadow-md); }
.ms-camp__kpi.is-active[b-u9fc4c23yu]  .ms-kpi { box-shadow: 0 0 0 2px var(--ms-brand), var(--ms-shadow-sm); }

.ms-camp__kpi-skel[b-u9fc4c23yu] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}
.ms-camp__skel-lines[b-u9fc4c23yu] { display: flex; flex-direction: column; gap: 7px; flex: 1; min-width: 0; }

/* --- Barra de herramientas ------------------------------------------------ */
.ms-camp__toolbar-end[b-u9fc4c23yu] { display: flex; align-items: center; gap: 12px; margin-left: auto; }

.ms-camp__search .ms-input[b-u9fc4c23yu] { padding-right: 34px; }
.ms-camp__search-clear[b-u9fc4c23yu] {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: var(--ms-radius-xs);
    background: transparent;
    color: var(--ms-text-3);
    cursor: pointer;
}
.ms-camp__search-clear:hover[b-u9fc4c23yu] { background: var(--ms-surface-3); color: var(--ms-text); }

/* --- Filtros de botón ----------------------------------------------------- */
.ms-camp__filtros[b-u9fc4c23yu] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 14px 28px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ms-border);
}
.ms-camp__filtros[b-u9fc4c23yu]  .ms-camp__orden { margin-left: auto; }

/* --- Selección en bloque -------------------------------------------------- */
.ms-camp__bulk b[b-u9fc4c23yu] { font-weight: 700; }

/* --- Tabla ---------------------------------------------------------------- */
.ms-camp__tabla tbody tr[b-u9fc4c23yu] { cursor: pointer; }
.ms-camp__tabla tbody tr.is-selected:hover[b-u9fc4c23yu] { background: var(--ms-brand-soft-hover); }

.ms-camp__sort[b-u9fc4c23yu] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
}
.ms-camp__sort:hover[b-u9fc4c23yu] { color: var(--ms-text-2); }
.is-sorted .ms-camp__sort[b-u9fc4c23yu] { color: var(--ms-brand); }

.ms-camp__ident[b-u9fc4c23yu] { min-width: 240px; max-width: 380px; }
.ms-camp__link[b-u9fc4c23yu] { display: block; min-width: 0; color: inherit; }
.ms-camp__link:hover b[b-u9fc4c23yu] { color: var(--ms-brand); }

.ms-camp__celda[b-u9fc4c23yu] { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.ms-camp__celda b[b-u9fc4c23yu] { font-size: 12.5px; font-weight: 600; color: var(--ms-text); }
.ms-camp__celda span[b-u9fc4c23yu] { font-size: 11px; color: var(--ms-text-3); }
.ms-camp__sede[b-u9fc4c23yu] { max-width: 220px; }
.ms-camp__sede b[b-u9fc4c23yu],
.ms-camp__sede span[b-u9fc4c23yu] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ms-camp__estado[b-u9fc4c23yu] { display: inline-flex; flex-wrap: wrap; gap: 4px; }

@media (min-width: 768px) {
    .ms-camp__tabla tbody td[b-u9fc4c23yu] { height: auto; padding-top: 11px; padding-bottom: 11px; }
}

.ms-camp__tabla tr.is-flash td[b-u9fc4c23yu] { animation: ms-camp-flash-b-u9fc4c23yu 2.2s var(--ms-ease); }

@keyframes ms-camp-flash-b-u9fc4c23yu {
    0%, 35% { background-color: var(--ms-brand-soft-hover); }
    100%    { background-color: transparent; }
}

/* --- Tarjetas ------------------------------------------------------------- */
.ms-camp__cards[b-u9fc4c23yu] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
    padding: 16px;
}

.ms-camp__card[b-u9fc4c23yu] {
    position: relative;
    transition: transform var(--ms-dur) var(--ms-ease), border-color var(--ms-dur) var(--ms-ease),
                box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-camp__card:hover[b-u9fc4c23yu] { transform: translateY(-2px); border-color: var(--ms-brand-border); box-shadow: var(--ms-shadow-md); }
.ms-camp__card.is-selected[b-u9fc4c23yu] { border-color: var(--ms-brand); box-shadow: 0 0 0 1px var(--ms-brand); }
.ms-camp__card.is-flash[b-u9fc4c23yu] { animation: ms-camp-flash-card-b-u9fc4c23yu 2.2s var(--ms-ease); }

@keyframes ms-camp-flash-card-b-u9fc4c23yu {
    0%, 35% { box-shadow: 0 0 0 3px var(--ms-brand-border); }
    100%    { box-shadow: var(--ms-shadow-sm); }
}

.ms-camp__cover[b-u9fc4c23yu] {
    position: relative;
    height: 84px;
    background: linear-gradient(125deg, var(--ms-brand-soft-hover), var(--ms-purple-bg) 60%, var(--ms-info-bg));
}
.ms-camp__cover img[b-u9fc4c23yu] { width: 100%; height: 100%; object-fit: cover; }

.ms-camp__cover-check[b-u9fc4c23yu] {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    padding: 6px;
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
    box-shadow: var(--ms-shadow-xs);
    cursor: pointer;
}

.ms-camp__cover-status[b-u9fc4c23yu] {
    position: absolute;
    top: 10px;
    right: 10px;
    border-radius: var(--ms-radius-pill);
    background: var(--ms-surface);
}

.ms-camp__card-body[b-u9fc4c23yu] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
    padding: 0 16px 14px;
}

.ms-camp__card-markwrap[b-u9fc4c23yu] {
    align-self: flex-start;
    margin-top: -24px;
    padding: 3px;
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
    box-shadow: var(--ms-shadow-xs);
}

.ms-camp__card-title[b-u9fc4c23yu] { min-width: 0; margin-top: -4px; }
.ms-camp__card-title b[b-u9fc4c23yu] {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ms-text);
}
.ms-camp__card-title > span[b-u9fc4c23yu] { display: block; margin-top: 2px; font-size: 11.5px; color: var(--ms-text-3); }

/* Enlace estirado: toda la tarjeta abre la ficha; checks y botones van por encima. */
.ms-camp__card-link[b-u9fc4c23yu] { color: inherit; }
.ms-camp__card-link[b-u9fc4c23yu]::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ms-camp__card-link:hover b[b-u9fc4c23yu] { color: var(--ms-brand); }
.ms-camp__card-link:focus-visible[b-u9fc4c23yu] { outline: none; }
.ms-camp__card-link:focus-visible[b-u9fc4c23yu]::after {
    outline: 2px solid var(--ms-border-focus);
    outline-offset: -2px;
    border-radius: var(--ms-radius-lg);
}

.ms-camp__meta[b-u9fc4c23yu] { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--ms-text-2); }
.ms-camp__meta li[b-u9fc4c23yu] { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ms-camp__meta li[b-u9fc4c23yu]  .ms-icon { color: var(--ms-text-3); }
.ms-camp__meta em[b-u9fc4c23yu] { margin-left: auto; font-size: 11px; font-style: normal; color: var(--ms-text-3); white-space: nowrap; }

.ms-camp__card .ms-entity-card__stats[b-u9fc4c23yu] { padding: 10px 0; }

.ms-camp__card-foot[b-u9fc4c23yu] { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.ms-camp__card-actions[b-u9fc4c23yu] { position: relative; z-index: 2; }

.ms-camp__select-btn[b-u9fc4c23yu] {
    width: 36px;
    height: 36px;
    border: 1px solid var(--ms-brand-border);
    background: var(--ms-brand-soft-hover);
    color: var(--ms-brand);
}

.ms-camp__select-btn:hover[b-u9fc4c23yu] {
    border-color: var(--ms-brand);
    background: var(--ms-brand-soft);
}

.ms-camp__select-btn.is-active[b-u9fc4c23yu] {
    border-color: var(--ms-brand);
    background: var(--ms-brand);
    color: var(--ms-brand-ink);
}

.ms-camp__skel-card[b-u9fc4c23yu] { display: flex; flex-direction: column; gap: 10px; padding: 16px; }

/* --- Estrecho ------------------------------------------------------------- */
@media (max-width: 767.98px) {
    .ms-camp__toolbar-end[b-u9fc4c23yu] { width: 100%; margin-left: 0; justify-content: space-between; }
    .ms-camp__ident[b-u9fc4c23yu] { min-width: 0; max-width: none; }
    .ms-camp__cards[b-u9fc4c23yu] { grid-template-columns: minmax(0, 1fr); padding: 12px; }
    .ms-camp__filtros[b-u9fc4c23yu] { gap: 12px; }
    .ms-camp__filtros[b-u9fc4c23yu]  .ms-camp__orden { margin-left: 0; }
}
/* /Components/Pages/Current/CurrentDataEntryPage.razor.rz.scp.css */
/* Entrada de datos: horario fijo a la izquierda y entrada a la derecha, sin cambiar de pantalla. */

.ms-data-entry[b-rrltwdbm1e] {
    display: grid;
    grid-template-columns: minmax(270px, 310px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

/* El horario acompaña al hacer scroll y tiene su propia barra. */
.ms-data-entry__horario[b-rrltwdbm1e] {
    position: sticky;
    top: calc(var(--ms-topbar-h) + 12px);
    height: calc(100vh - var(--ms-topbar-h) - 36px);
    min-height: 320px;
}

.ms-data-entry__horario[b-rrltwdbm1e]  .ms-horario { height: 100%; }

.ms-data-entry__panel[b-rrltwdbm1e] { min-width: 0; }

.ms-data-entry__vacio[b-rrltwdbm1e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 420px;
    text-align: center;
    color: var(--ms-text-2);
}

.ms-data-entry__vacio img[b-rrltwdbm1e] {
    width: 180px;
    max-width: 60%;
    opacity: .9;
}

/* La marca cambia con el tema, como en la barra lateral. */
.ms-data-entry__marca--dark[b-rrltwdbm1e] { display: none; }
:root[data-ms-theme="dark"] .ms-data-entry__marca--light[b-rrltwdbm1e] { display: none; }
:root[data-ms-theme="dark"] .ms-data-entry__marca--dark[b-rrltwdbm1e] { display: block; }

.ms-data-entry__vacio p[b-rrltwdbm1e] { margin: 0; font-size: 14px; }

@media (max-width: 991.98px) {
    .ms-data-entry[b-rrltwdbm1e] { grid-template-columns: minmax(0, 1fr); }
    .ms-data-entry__horario[b-rrltwdbm1e] { position: static; height: 45vh; }
}
/* /Components/Pages/Current/CurrentSchedulePage.razor.rz.scp.css */
/* ============================================================================
   Horario del campeonato actual — tabla editable celda a celda.
   ========================================================================== */

.ms-horaed__dia[b-uqmnwmtga3] { width: auto; min-width: 150px; }

/* --- Aviso de guardado -----------------------------------------------------
   Ocupa su sitio siempre (sólo se desvanece) para que la barra no dé saltos
   cada vez que aparece o se va. */
.ms-horaed__estado[b-uqmnwmtga3] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: none;
    height: 26px;
    padding: 0 12px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .01em;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-3px);
    transition: opacity .24s var(--ms-ease), transform .24s var(--ms-ease),
                background .24s var(--ms-ease), border-color .24s var(--ms-ease), color .24s var(--ms-ease);
}
.ms-horaed__estado.is-visible[b-uqmnwmtga3] { opacity: 1; transform: translateY(0); }

.ms-horaed__estado--guardando[b-uqmnwmtga3] {
    background: var(--ms-surface-2);
    border-color: var(--ms-border);
    color: var(--ms-text-3);
}
.ms-horaed__estado--hecho[b-uqmnwmtga3] {
    background: var(--ms-success-bg);
    border-color: var(--ms-success-bd);
    color: var(--ms-success);
}
.ms-horaed__estado--error[b-uqmnwmtga3] {
    background: var(--ms-danger-bg);
    border-color: var(--ms-danger-bd);
    color: var(--ms-danger);
}

.ms-horaed__spinner[b-uqmnwmtga3] {
    width: 12px;
    height: 12px;
    flex: none;
    border: 2px solid color-mix(in srgb, currentColor 22%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: ms-horaed-giro-b-uqmnwmtga3 .7s linear infinite;
}

@keyframes ms-horaed-giro-b-uqmnwmtga3 { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    .ms-horaed__estado[b-uqmnwmtga3] { transition-duration: .01ms; }
    .ms-horaed__spinner[b-uqmnwmtga3] { animation-duration: 2.4s; }
}

/* --- Tabla ---------------------------------------------------------------- */
.ms-horaed__tabla[b-uqmnwmtga3] { table-layout: auto; }

/* Cabecera de día: separa los bloques sin romper la tabla. */
.ms-horaed__dia-cab th[b-uqmnwmtga3] {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 7px 12px;
    background: var(--ms-surface-2);
    border-top: 1px solid var(--ms-border);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ms-brand);
}

.ms-horaed__prueba[b-uqmnwmtga3] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}
.ms-horaed__prueba b[b-uqmnwmtga3] { font-size: 13px; }
.ms-horaed__prueba span[b-uqmnwmtga3] { font-size: 11.5px; color: var(--ms-text-3); }

/* --- Celdas editables ----------------------------------------------------- */
.ms-horaed__celda[b-uqmnwmtga3] {
    cursor: text;
    /* La altura no debe saltar al cambiar el texto por el editor. */
    height: var(--ms-row-h);
    padding-top: 0;
    padding-bottom: 0;
    transition: background var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-horaed__celda:hover[b-uqmnwmtga3] {
    background: var(--ms-brand-soft);
    box-shadow: inset 0 0 0 1px var(--ms-border-strong);
}
.ms-horaed__celda:has(.ms-horaed__editor)[b-uqmnwmtga3] {
    background: var(--ms-surface);
    box-shadow: inset 0 0 0 2px var(--ms-brand);
}

.ms-horaed__editor[b-uqmnwmtga3] {
    width: 100%;
    min-width: 0;
    height: 30px;
    padding: 0 8px;
    font-size: 13px;
}
.ms-horaed__editor[type="time"][b-uqmnwmtga3],
.ms-horaed__editor[type="date"][b-uqmnwmtga3] { min-width: 120px; }

@media (max-width: 991.98px) {
    .ms-horaed__celda[b-uqmnwmtga3] { height: auto; padding-top: 6px; padding-bottom: 6px; }
}
/* /Components/Pages/Current/DataEntry/EventUnitDataEntry.razor.rz.scp.css */
/* EventUnitDataEntry — tabla de resultados con el lenguaje del AT Manager y las clases ms-*. */

.ms-entrada[b-ip0q0lyszw] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* ---------- Cabecera ---------- */
.ms-entrada__cab[b-ip0q0lyszw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 16px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ms-border-soft);
}

.ms-entrada__ident[b-ip0q0lyszw] { min-width: 0; }

.ms-entrada__num[b-ip0q0lyszw] {
    display: flex;
    gap: 10px;
    margin: 0;
    font-size: 11.5px;
    color: var(--ms-text-3);
    font-variant-numeric: tabular-nums;
}

.ms-entrada__cab h2[b-ip0q0lyszw] {
    margin: 2px 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--ms-text);
}

.ms-entrada__fase[b-ip0q0lyszw] {
    margin-left: 6px;
    color: var(--ms-brand);
}

.ms-entrada__info[b-ip0q0lyszw] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 0;
    font-size: 12px;
    color: var(--ms-text-2);
}

.ms-entrada__acciones[b-ip0q0lyszw] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.ms-entrada__barra[b-ip0q0lyszw] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ms-entrada__barra .ms-label[b-ip0q0lyszw] { margin: 0; }

/* ---------- Tabla ---------- */
.ms-entrada__tabla th[b-ip0q0lyszw],
.ms-entrada__tabla td[b-ip0q0lyszw] { vertical-align: middle; }

.ms-entrada__tabla tbody td[b-ip0q0lyszw] {
    padding-top: 7px;
    padding-bottom: 7px;
}

.ms-entrada__tabla .ms-entrada__c-ord[b-ip0q0lyszw] { width: 56px; text-align: center; }
.ms-entrada__tabla .ms-entrada__c-bib[b-ip0q0lyszw] { width: 60px; text-align: center; font-variant-numeric: tabular-nums; color: var(--ms-text); }
.ms-entrada__tabla .ms-entrada__c-gr[b-ip0q0lyszw] { width: 78px; }
.ms-entrada__tabla .ms-entrada__c-rk[b-ip0q0lyszw] { width: 52px; text-align: center; }
.ms-entrada__tabla .ms-entrada__c-res[b-ip0q0lyszw] { width: 130px; }
.ms-entrada__tabla .ms-entrada__c-num[b-ip0q0lyszw] { width: 84px; }
.ms-entrada__tabla .ms-entrada__c-art[b-ip0q0lyszw] { width: 70px; text-align: center; }
.ms-entrada__tabla .ms-entrada__c-med[b-ip0q0lyszw] { width: 44px; text-align: center; }
.ms-entrada__tabla .ms-entrada__c-time[b-ip0q0lyszw] { width: 64px; text-align: right; font-size: 11px; font-variant-numeric: tabular-nums; color: var(--ms-text-3); }
.ms-entrada__tabla .ms-entrada__c-irm[b-ip0q0lyszw] { width: 128px; }
.ms-entrada__tabla .ms-entrada__c-q[b-ip0q0lyszw] { width: 44px; text-align: center; }
.ms-entrada__tabla .ms-entrada__c-extra[b-ip0q0lyszw] { width: 110px; }

/* Descalificados, no terminados…: se atenúan. */
.ms-entrada__tabla tr.is-fuera .ms-entrada__nombre b[b-ip0q0lyszw],
.ms-entrada__tabla tr.is-fuera .ms-entrada__rk[b-ip0q0lyszw] { color: var(--ms-text-3); }

.ms-entrada__ord[b-ip0q0lyszw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 28px;
    border-radius: var(--ms-radius);
    background: var(--ms-brand);
    color: var(--ms-on-brand);
    font-weight: 700;
}

.ms-entrada__gr[b-ip0q0lyszw] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    min-width: 50px;
    padding-left: 8px;
    border-left: 3px solid var(--ms-info);
    line-height: 1.2;
}

.ms-entrada__gr small[b-ip0q0lyszw] { font-size: 10px; font-weight: 700; color: var(--ms-text-3); }
.ms-entrada__gr b[b-ip0q0lyszw] { font-size: 12px; color: var(--ms-text); }

.ms-entrada__nombre[b-ip0q0lyszw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.ms-entrada__nombre b[b-ip0q0lyszw] { font-size: 14px; font-weight: 600; color: var(--ms-text); }
.ms-entrada__nombre span[b-ip0q0lyszw] { font-size: 11.5px; color: var(--ms-text-3); }

.ms-entrada__rk[b-ip0q0lyszw] {
    font-size: 19px;
    font-weight: 800;
    font-style: italic;
    color: var(--ms-text);
}

.ms-entrada__res[b-ip0q0lyszw] {
    height: 36px;
    text-align: right;
    font-size: 17px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ms-entrada__corto[b-ip0q0lyszw] {
    height: 32px;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

.ms-entrada__res.is-invalid[b-ip0q0lyszw],
.ms-entrada__corto.is-invalid[b-ip0q0lyszw] {
    border-color: var(--ms-danger);
    box-shadow: 0 0 0 3px var(--ms-danger-bg);
}

.ms-entrada__irm[b-ip0q0lyszw] {
    width: 100%;
    height: 32px;
    padding: 0 6px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.ms-entrada__irm:hover[b-ip0q0lyszw] { border-color: var(--ms-brand); }

/* Opciones de la modal del IRM. */
.ms-entrada__irms[b-ip0q0lyszw] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
}

.ms-entrada__irm-op[b-ip0q0lyszw] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
    color: var(--ms-text);
    text-align: left;
    cursor: pointer;
}

.ms-entrada__irm-op:hover[b-ip0q0lyszw] { border-color: var(--ms-brand); }

.ms-entrada__irm-op.is-sel[b-ip0q0lyszw] { border-color: var(--ms-brand); }

.ms-entrada__irm-op span[b-ip0q0lyszw] {
    font-size: 11.5px;
    color: var(--ms-text-2);
}

.ms-entrada__irm.is-ok[b-ip0q0lyszw] { color: var(--ms-success); border-color: var(--ms-success-bd); }
.ms-entrada__irm.is-mal[b-ip0q0lyszw] { color: var(--ms-danger); border-color: var(--ms-danger-bd); }

/* Récord de la demo: letras en amarillo (RE, RC, MME…). */
.ms-entrada__record[b-ip0q0lyszw] {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 8px;
    border: 1px solid var(--ms-warning-bd);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-warning-bg);
    color: var(--ms-warning);
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .02em;
}

.ms-entrada__record-no[b-ip0q0lyszw] { color: var(--ms-text-4); }

.ms-entrada__q[b-ip0q0lyszw] {
    width: 30px;
    height: 30px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
    color: var(--ms-text-3);
    font-weight: 800;
    cursor: pointer;
}

.ms-entrada__q.is-on[b-ip0q0lyszw] {
    border-color: var(--ms-warning-bd);
    background: var(--ms-warning-bg);
    color: var(--ms-warning);
}

@media (max-width: 991.98px) {
    .ms-entrada__cab[b-ip0q0lyszw] { grid-template-columns: minmax(0, 1fr); }
    .ms-entrada__acciones[b-ip0q0lyszw] { justify-content: flex-start; }
}

@media (max-width: 767.98px) {
    .ms-entrada__tabla [class*="ms-entrada__c-"][b-ip0q0lyszw] { width: auto; text-align: right; }
    .ms-entrada__res[b-ip0q0lyszw] { max-width: 160px; margin-left: auto; }
}

/* ---------- Barra: viento, récords, calcular fase ---------- */
.ms-entrada__viento[b-ip0q0lyszw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ms-text-2);
}

.ms-entrada__viento .ms-input[b-ip0q0lyszw] { width: 70px; }

.ms-entrada__check[b-ip0q0lyszw] { font-size: 12.5px; }

/* ---------- Columnas extra ---------- */
.ms-entrada__milesimas[b-ip0q0lyszw] {
    display: block;
    margin-top: 2px;
    text-align: right;
    font-size: 11px;
    color: var(--ms-text-3);
}

.ms-entrada__fase-rk[b-ip0q0lyszw] {
    font-weight: 700;
    color: var(--ms-text-2);
}

.ms-entrada__tabla .ms-entrada__c-art .ms-btn[b-ip0q0lyszw] {
    min-width: 46px;
    height: 28px;
    padding: 0 8px;
    justify-content: center;
}

/* ---------- Modal del artículo (capa propia: ms-ui.js cierra .ms-overlay por su cuenta) ---------- */
.ms-entrada__velo[b-ip0q0lyszw] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    justify-content: center;
    padding: 14vh 16px 16px;
    background: var(--ms-overlay);
    backdrop-filter: blur(3px);
}

.ms-entrada__modal[b-ip0q0lyszw] {
    max-width: 420px;
    height: auto;
    transform: none;
}

/* La tabla no se aplasta: por debajo de este ancho aparece scroll horizontal. */
@media (min-width: 768px) {
    .ms-entrada__tabla[b-ip0q0lyszw] { min-width: 820px; }
    .ms-entrada__tabla .ms-input[b-ip0q0lyszw],
    .ms-entrada__tabla .ms-select[b-ip0q0lyszw] { width: 100%; min-width: 0; }
}

/* Q calculada: sólo lectura. */
span.ms-entrada__q[b-ip0q0lyszw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: default;
}
/* /Components/Pages/Current/DataEntry/EventUnitSchedule.razor.rz.scp.css */
/* EventUnitSchedule — horario compacto como el de AT Manager, con su propio scroll. */

.ms-horario[b-d5hlnmrmio] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.ms-horario__cab[b-d5hlnmrmio] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    border-bottom: 1px solid var(--ms-border-soft);
}

/* ---------- Filtros con iconos ---------- */
.ms-horario__filtros[b-d5hlnmrmio] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ms-horario__grupo[b-d5hlnmrmio] {
    display: inline-flex;
    gap: 4px;
}

.ms-horario__icono[b-d5hlnmrmio] {
    --tono: var(--ms-text-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 30px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
    color: var(--tono);
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}

.ms-horario__icono--fem[b-d5hlnmrmio] { --tono: var(--ms-purple); }
.ms-horario__icono--masc[b-d5hlnmrmio] { --tono: var(--ms-info); }
.ms-horario__icono--tipo[b-d5hlnmrmio] { --tono: var(--ms-success); }

.ms-horario__icono:hover[b-d5hlnmrmio] { border-color: var(--tono); }

.ms-horario__icono.is-on[b-d5hlnmrmio] {
    background: var(--tono);
    border-color: var(--tono);
    color: #fff;
}

.ms-horario__icono:focus-visible[b-d5hlnmrmio] {
    outline: 2px solid var(--ms-brand);
    outline-offset: 2px;
}

.ms-horario__busqueda[b-d5hlnmrmio] {
    display: flex;
    gap: 6px;
}

.ms-horario__busqueda .ms-input-group[b-d5hlnmrmio] { flex: 1; min-width: 0; }

.ms-horario__dia[b-d5hlnmrmio] {
    width: 120px;
    font-size: 12px;
}

/* ---------- Títulos de columnas ---------- */
.ms-horario__titulos[b-d5hlnmrmio] {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 8px;
    padding: 6px 14px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ms-text-3);
    border-bottom: 1px solid var(--ms-border-soft);
}

/* ---------- Lista ---------- */
.ms-horario__lista[b-d5hlnmrmio] {
    list-style: none;
    margin: 0;
    padding: 6px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.ms-horario__dia-cab[b-d5hlnmrmio] {
    position: sticky;
    top: -6px;
    z-index: 1;
    padding: 6px 8px 4px;
    background: var(--ms-surface);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-horario__fila[b-d5hlnmrmio] {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 8px;
    border: 1px solid transparent;
    border-radius: var(--ms-radius);
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.ms-horario__fila:hover[b-d5hlnmrmio] { background: var(--ms-surface-2); }

.ms-horario__fila:focus-visible[b-d5hlnmrmio] {
    outline: 2px solid var(--ms-brand);
    outline-offset: -2px;
}

/* La unidad elegida queda marcada, como en el AT Manager. */
.ms-horario__fila.is-active[b-d5hlnmrmio] {
    background: var(--ms-brand-soft);
    border-color: var(--ms-brand-border);
}

.ms-horario__hora[b-d5hlnmrmio] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.ms-horario__hora b[b-d5hlnmrmio] {
    font-size: 16px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text);
}

.ms-horario__hora b.is-vacia[b-d5hlnmrmio] { color: var(--ms-text-4); }

.ms-horario__hora small[b-d5hlnmrmio] {
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-horario__meta[b-d5hlnmrmio] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
}

.ms-horario__meta b[b-d5hlnmrmio] {
    font-size: 13px;
    font-weight: 700;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Segunda línea: fase + estado. */
.ms-horario__sub[b-d5hlnmrmio] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.ms-horario__fase[b-d5hlnmrmio] {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ms-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-horario__meta em[b-d5hlnmrmio] {
    margin-left: 6px;
    font-style: normal;
    font-weight: 500;
    color: var(--ms-text-4);
}

.ms-horario__estado[b-d5hlnmrmio] {
    flex: none;
    margin-left: auto;
    font-size: 10px;
    height: 20px;
    padding: 0 6px;
}
/* /Components/Pages/EventCatalogPicker.razor.rz.scp.css */
/* ============================================================================
   Selector de pruebas del catálogo: filtros en una línea, buscador y una lista
   con casilla (para añadir varias) y «+» (para añadir una al momento).
   ========================================================================== */

.ms-selector[b-nzbum31bdi] { max-width: 1080px; }

/* Cuerpo a dos columnas: selector (izquierda) + sets de pruebas (derecha).
   El cuerpo fija la altura, así las dos columnas miden lo mismo y sólo la
   lista del catálogo hace scroll; los sets se estiran y no sacan barra. */
.ms-selector__cuerpo[b-nzbum31bdi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: stretch;
    height: min(64vh, 592px);
    min-height: 0;
    overflow: hidden;
}

.ms-selector__main[b-nzbum31bdi] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border-right: 1px solid var(--ms-border);
}

/* --- Sets de pruebas favoritas (columna derecha) ------------------------- */
.ms-selector__sets[b-nzbum31bdi] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    background: var(--ms-surface-2);
}

.ms-selector__sets-head[b-nzbum31bdi] { padding: 12px 16px 8px; }
.ms-selector__sets-head p + p[b-nzbum31bdi] { margin-top: 2px; }

.ms-selector__sets-lista[b-nzbum31bdi] { display: flex; flex-direction: column; }

.ms-selector__set[b-nzbum31bdi] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px 12px;
    border-top: 1px solid var(--ms-border-soft);
}
.ms-selector__set.is-open[b-nzbum31bdi] { background: var(--ms-surface); }

.ms-selector__set-head[b-nzbum31bdi] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 4px;
    border: 0;
    border-radius: 6px;
    background: none;
    color: var(--ms-text);
    text-align: left;
    cursor: pointer;
}
.ms-selector__set-head:hover[b-nzbum31bdi] { background: var(--ms-surface-2); }
.ms-selector__set-head > .ms-icon[b-nzbum31bdi] { flex: none; color: var(--ms-text-3); }
.ms-selector__set-head > .ms-badge[b-nzbum31bdi] { flex: none; margin-left: auto; }

.ms-selector__set-titulo[b-nzbum31bdi] { min-width: 0; }
.ms-selector__set-titulo b[b-nzbum31bdi] { display: block; font-size: 13px; font-weight: 600; color: var(--ms-text); }
.ms-selector__set-titulo > span[b-nzbum31bdi] { display: block; font-size: 11.5px; color: var(--ms-text-3); margin-top: 2px; }

.ms-selector__set-items[b-nzbum31bdi] { display: flex; flex-wrap: wrap; gap: 4px; margin: 2px 0 4px; }
.ms-selector__set-items .ms-tag.is-anadida[b-nzbum31bdi] { opacity: .55; }
.ms-selector__set .ms-btn[b-nzbum31bdi] { align-self: flex-start; }

/* Filtros: saltan de línea si no caben, nunca se recortan. */
.ms-selector__filtros[b-nzbum31bdi] {
    flex: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 6px;
    padding: 4px 16px 10px;
}
.ms-selector__filtros > .ms-chip[b-nzbum31bdi] { flex: none; white-space: nowrap; }

.ms-selector__sep[b-nzbum31bdi] {
    flex: none;
    width: 1px;
    height: 16px;
    background: var(--ms-border);
}

.ms-selector__buscador[b-nzbum31bdi] {
    flex: none;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 16px 12px;
    border-bottom: 1px solid var(--ms-border-soft);
}
.ms-selector__buscador .ms-input-group[b-nzbum31bdi] { flex: 1; min-width: 0; }
.ms-selector__buscador > span[b-nzbum31bdi] { flex: none; white-space: nowrap; }

.ms-selector__body[b-nzbum31bdi] {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    padding: 0;
    overflow-y: auto;
}

.ms-selector__lista[b-nzbum31bdi] { list-style: none; margin: 0; padding: 0; }

.ms-selector__item[b-nzbum31bdi] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-right: 12px;
    border-bottom: 1px solid var(--ms-border-soft);
    transition: background var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-selector__item:last-child[b-nzbum31bdi] { border-bottom: 0; }
.ms-selector__item:hover[b-nzbum31bdi] { background: var(--ms-surface-2); }
.ms-selector__item.is-marcada[b-nzbum31bdi] { background: var(--ms-brand-soft); box-shadow: inset 3px 0 0 var(--ms-brand); }

.ms-selector__check[b-nzbum31bdi] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 6px 9px 16px;
    cursor: pointer;
}
.ms-selector__item.is-anadida .ms-selector__check[b-nzbum31bdi] { cursor: default; }
.ms-selector__item.is-anadida .ms-selector__texto[b-nzbum31bdi] { opacity: .6; }

.ms-selector__texto[b-nzbum31bdi] { min-width: 0; flex: 1; }

.ms-selector__texto b[b-nzbum31bdi] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-selector__texto span[b-nzbum31bdi] {
    display: block;
    font-size: 11.5px;
    color: var(--ms-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-selector__mas[b-nzbum31bdi] { color: var(--ms-brand); }
.ms-selector__mas:hover:not(:disabled)[b-nzbum31bdi] { background: var(--ms-brand-soft); }

.ms-selector__footer[b-nzbum31bdi] { flex-wrap: wrap; gap: 8px; }
.ms-selector__hueco[b-nzbum31bdi] { flex: 1; }

@media (max-width: 575.98px) {
    .ms-selector__hueco[b-nzbum31bdi] { flex-basis: 100%; height: 0; }
}

/* En pantallas estrechas, una sola columna y altura fluida. */
@media (max-width: 991.98px) {
    .ms-selector__cuerpo[b-nzbum31bdi] {
        grid-template-columns: minmax(0, 1fr);
        height: auto;
        overflow: visible;
    }
    .ms-selector__main[b-nzbum31bdi] { overflow: visible; border-right: 0; border-bottom: 1px solid var(--ms-border); }
    .ms-selector__body[b-nzbum31bdi] { flex: none; max-height: min(56vh, 520px); }
    .ms-selector__sets[b-nzbum31bdi] { overflow: visible; }
}
/* /Components/Pages/EventChampionshipConfigAtEditor.razor.rz.scp.css */
.ms-config-at[b-sphutpt6dq] { max-width: 820px; }

/* Los interruptores se alinean con los campos del formulario. */
.ms-config-at .ms-switch-row[b-sphutpt6dq] { padding-left: 0; padding-right: 0; }

/* --- Intermedios extra ------------------------------------------------------ */
.ms-config-at__intermedios[b-sphutpt6dq] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.ms-config-at__cabecera[b-sphutpt6dq],
.ms-config-at__fila[b-sphutpt6dq] {
    display: grid;
    grid-template-columns: 28px minmax(0, 2fr) minmax(90px, 1fr) minmax(0, 2fr) auto;
    gap: 8px;
    align-items: start;
    width: 100%;
}

.ms-config-at__cabecera[b-sphutpt6dq] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-config-at__orden[b-sphutpt6dq] {
    display: grid;
    place-items: center;
    height: 36px;
    font-size: 12px;
    font-weight: 700;
    color: var(--ms-text-3);
    font-variant-numeric: tabular-nums;
}

.ms-config-at__acciones[b-sphutpt6dq] { display: inline-flex; align-items: center; gap: 2px; padding-top: 4px; }
.ms-config-at__acciones button:disabled[b-sphutpt6dq] { opacity: .35; pointer-events: none; }
.ms-config-at__peligro:hover[b-sphutpt6dq] { color: var(--ms-danger); background: var(--ms-danger-bg); }

@media (max-width: 575.98px) {
    .ms-config-at__cabecera[b-sphutpt6dq] { display: none; }
    .ms-config-at__fila[b-sphutpt6dq] { grid-template-columns: 28px minmax(0, 1fr) auto; }
    .ms-config-at__fila > .ms-field[b-sphutpt6dq] { grid-column: 2; }
    .ms-config-at__fila > .ms-config-at__acciones[b-sphutpt6dq] { grid-column: 3; grid-row: 1; }
}
/* /Components/Pages/Eventos.razor.rz.scp.css */
/* ============================================================================
   Eventos — pantalla de dos módulos: la lista de eventos a la izquierda
   (≈30 % del ancho) y el detalle del evento seleccionado a la derecha.

   El detalle es una rejilla de 12 columnas con secciones expandibles
   (ExpandablePanel): récords, fases | unidades, configuración e inscritos.
   Al expandir una, ocupa todo el ancho arriba y las demás se comprimen.

   Los menús de tres puntos necesitan salir de la tarjeta, así que se anula
   el recorte de .ms-card en la lista.
   ========================================================================== */

.ms-eventos[b-ajsr1zaqrd] {
    display: grid;
    grid-template-columns: minmax(280px, 20%) minmax(0, 1fr);
    gap: 20px;
    flex: 1;
    align-items: start;
}

/* --- Columna izquierda: lista --------------------------------------------- */
.ms-eventos__lista[b-ajsr1zaqrd] {
    position: sticky;
    top: calc(var(--ms-topbar-h) + 16px);
    min-width: 0;
}


/* Filtros rápidos: una línea; los chips que no caben saltan a una segunda fila oculta. */
.ms-eventos__filtros[b-ajsr1zaqrd] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    column-gap: 6px;
    row-gap: 40px;
    height: 34px;   /* 10px arriba + una fila de 22px + 2px abajo */
    padding: 10px 16px 2px;
    overflow: hidden;
}
.ms-eventos__filtros-grupo[b-ajsr1zaqrd] { display: contents; }
.ms-eventos__filtros-grupo + .ms-eventos__filtros-grupo > .ms-chip:first-child[b-ajsr1zaqrd] { margin-left: 6px; }
.ms-eventos__filtros .ms-chip[b-ajsr1zaqrd] { flex: none; white-space: nowrap; }

/* Chips compactos solo con pictograma. */
.ms-eventos__filtros .ms-eventos__tipo[b-ajsr1zaqrd],
.ms-eventos__filtros .ms-eventos__genero[b-ajsr1zaqrd],
.ms-eventos__filtros .ms-eventos__limpiar[b-ajsr1zaqrd] { width: 26px; height: 22px; padding: 0; justify-content: center; }
.ms-eventos__limpiar[b-ajsr1zaqrd]  .ms-icon { width: 12px; height: 12px; }
.ms-eventos__tipo[b-ajsr1zaqrd]  .ms-icon,
.ms-eventos__genero[b-ajsr1zaqrd]  .ms-icon { width: 13px; height: 13px; }

/* --- Teclado: zona activa, cursor, edición en línea, pistas y ayuda -------- */
.ms-eventos__lista-card.is-zona[b-ajsr1zaqrd],
.ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec.is-zona {
    outline: 2px solid color-mix(in srgb, var(--ms-brand) 35%, transparent);
    outline-offset: 1px;
}

.ms-eventos__panel tbody tr[b-ajsr1zaqrd] { cursor: default; }
.ms-eventos__panel tbody tr.is-cursor[b-ajsr1zaqrd] { background: var(--ms-brand-soft); }
.ms-eventos__panel tbody tr.is-cursor > td:first-child[b-ajsr1zaqrd] { box-shadow: inset 3px 0 0 var(--ms-brand); }

.ms-eventos__celda[b-ajsr1zaqrd] { cursor: text; }
.ms-eventos__celda.is-editando[b-ajsr1zaqrd] { padding: 0 4px; }

.ms-eventos__editor[b-ajsr1zaqrd] { width: 100%; min-width: 72px; height: 28px; padding: 0 8px; font-size: 13px; }
.ms-eventos__editor[type="number"][b-ajsr1zaqrd] { min-width: 64px; }
.ms-eventos__editor[type="date"][b-ajsr1zaqrd] { min-width: 132px; }
.ms-eventos__editor[type="datetime-local"][b-ajsr1zaqrd] { min-width: 176px; }

/* Pistas de teclado: a la altura del pie y centradas en el área de contenido,
   entre el copyright y los enlaces de versión. Sin borde ni fondo: es texto
   informativo, no un control.

   Va fija a la ventana (al final del contenido, con la página corta, se quedaba
   flotando en mitad de la pantalla) y con pointer-events: none, para no
   interceptar nunca un clic del pie que tiene debajo. */
.ms-eventos__hints[b-ajsr1zaqrd] {
    position: fixed;
    left: var(--ms-sidebar-w);
    right: 0;
    /* 24px = padding inferior de .ms-footer; con la misma altura de fila que
       su contenido, ambas líneas quedan centradas a la misma altura. */
    bottom: 24px;
    min-height: 22px;
    z-index: 40;
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px 12px;
    flex-wrap: wrap;
    padding: 0 16px;
    font-size: 11px;
    color: var(--ms-text-3);
}
/* La barra lateral se puede minificar (Ctrl+B): el centro se recalcula. */
:root.is-mini .ms-eventos__hints[b-ajsr1zaqrd] { left: var(--ms-sidebar-w-mini); }
@media (max-width: 991.98px) { .ms-eventos__hints[b-ajsr1zaqrd] { left: 0; } }
.ms-eventos__hints > span[b-ajsr1zaqrd] { display: inline-flex; align-items: center; gap: 5px; }
.ms-eventos__hints .ms-kbd[b-ajsr1zaqrd] { height: 18px; font-size: 9.5px; }
.ms-eventos__hints-zona[b-ajsr1zaqrd] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ms-brand);
}
/* En la píldora ya no hay barra que rellenar: «? Atajos» va en línea con el resto. */
.ms-eventos__hints-end[b-ajsr1zaqrd] { margin-left: 0; }

.ms-eventos__ayuda[b-ajsr1zaqrd] {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 60;
    width: min(380px, calc(100vw - 32px));
    max-height: min(72vh, 620px);
    overflow: auto;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .18);
}
.ms-eventos__ayuda-body[b-ajsr1zaqrd] { display: flex; flex-direction: column; gap: 6px; padding: 0 16px 16px; }
.ms-eventos__ayuda-body .ms-eyebrow[b-ajsr1zaqrd] { margin-top: 8px; }
.ms-eventos__ayuda-fila[b-ajsr1zaqrd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 12.5px;
    color: var(--ms-text-2);
}
.ms-eventos__ayuda-teclas[b-ajsr1zaqrd] { flex: none; display: inline-flex; gap: 3px; }

/* Inscritos: la inscripción desactivada se atenúa, salvo sus interruptores y sus acciones. */
.ms-eventos__panel tbody tr.is-inactiva > td:not(.ms-eventos__interruptor):not(.ms-eventos__td-acciones)[b-ajsr1zaqrd] { opacity: .55; }

.ms-eventos__interruptor[b-ajsr1zaqrd] { width: 1%; white-space: nowrap; }
.ms-eventos__interruptor .ms-switch:focus-visible[b-ajsr1zaqrd] { outline: 2px solid var(--ms-brand); outline-offset: 2px; }

.ms-eventos__count[b-ajsr1zaqrd] { margin-left: auto; flex: none; white-space: nowrap; }

.ms-eventos__aviso[b-ajsr1zaqrd] { padding: 10px 16px; font-size: 12px; color: var(--ms-text-3); text-align: center; }

.ms-eventos__items[b-ajsr1zaqrd] { display: flex; flex-direction: column; }

.ms-eventos__item[b-ajsr1zaqrd] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px 9px 14px;
    border-bottom: 1px solid var(--ms-border-soft);
    transition: background var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}

.ms-eventos__item:last-child[b-ajsr1zaqrd] { border-bottom: 0; }
.ms-eventos__item:hover[b-ajsr1zaqrd] { background: var(--ms-surface-2); }

.ms-eventos__item.is-active[b-ajsr1zaqrd] {
    background: var(--ms-brand-soft);
    box-shadow: inset 3px 0 0 var(--ms-brand);
}

.ms-eventos__item--skel[b-ajsr1zaqrd] { gap: 12px; }

.ms-eventos__item-btn[b-ajsr1zaqrd] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.ms-eventos__item-body[b-ajsr1zaqrd] { min-width: 0; flex: 1; }

.ms-eventos__item-body b[b-ajsr1zaqrd] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-eventos__item-body span[b-ajsr1zaqrd] {
    display: block;
    font-size: 11.5px;
    color: var(--ms-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* --- Columna derecha: ficha ----------------------------------------------- */
.ms-eventos__detalle[b-ajsr1zaqrd] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    container-type: inline-size;
}

/* En una ficha estrecha, las pestañas se quedan en icono. */
@container (max-width: 760px) {
    .ms-eventos__vista[b-ajsr1zaqrd] { width: 30px; padding: 0; }
    .ms-eventos__vista span[b-ajsr1zaqrd] { display: none; }
}

/* --- Barra del evento ------------------------------------------------------
   Una única fila, de la altura de las pestañas. OJO: .ms-card es flex en
   COLUMNA, así que aquí hay que devolverla a fila o todo se apila.
   El único elemento elástico es la identidad: se queda el hueco libre y es lo
   primero que se recorta; el resto mantiene su tamaño.
   -------------------------------------------------------------------------- */
.ms-eventos__barra[b-ajsr1zaqrd] {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0;
    overflow: visible;
}

.ms-eventos__barra > .ms-eventos__ident[b-ajsr1zaqrd] {
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    padding: 0 12px;
}

.ms-eventos__barra > .ms-eventos__accesos[b-ajsr1zaqrd],
.ms-eventos__barra > .ms-eventos__herramientas[b-ajsr1zaqrd] {
    flex: none;
    align-items: center;
    padding: 0 12px;
    border-top: 0;
}
.ms-eventos__barra > .ms-eventos__accesos[b-ajsr1zaqrd] { flex-wrap: nowrap; }
.ms-eventos__barra > .ms-eventos__herramientas[b-ajsr1zaqrd] { border-left: 1px solid var(--ms-border-soft); }

.ms-eventos__titulo[b-ajsr1zaqrd] { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.ms-eventos__barra .ms-eventos__meta[b-ajsr1zaqrd] { flex: none; flex-wrap: nowrap; }

/* El conmutador de vista va sólo con icono: su texto «Récords» repetía el de
   la pill que tiene justo al lado y confundía. */
.ms-eventos__barra .ms-eventos__vista[b-ajsr1zaqrd] { width: 30px; padding: 0; justify-content: center; }
.ms-eventos__barra .ms-eventos__vista span[b-ajsr1zaqrd] { display: none; }

/* Pasos de compresión: antes de romper la línea, se suelta texto. */
@container (max-width: 1060px) {
    .ms-eventos__barra .ms-eventos__acceso[b-ajsr1zaqrd] { width: 30px; padding: 0; justify-content: center; }
    .ms-eventos__barra .ms-eventos__acceso span[b-ajsr1zaqrd] { display: none; }
}
@container (max-width: 820px) {
    .ms-eventos__barra .ms-eventos__meta[b-ajsr1zaqrd] { display: none; }
}
@container (max-width: 640px) {
    .ms-eventos__barra .ms-btn--secondary span[b-ajsr1zaqrd] { display: none; }
    .ms-eventos__barra .ms-btn--secondary[b-ajsr1zaqrd] { width: 30px; padding: 0; justify-content: center; }
}

.ms-eventos__herramientas[b-ajsr1zaqrd] { display: flex; align-items: center; gap: 6px; flex: none; flex-wrap: nowrap; }
.ms-eventos__ident[b-ajsr1zaqrd] { min-width: 0; gap: 12px; flex-wrap: nowrap; }
.ms-eventos__ident-text[b-ajsr1zaqrd] {
    min-width: 0;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
}
.ms-eventos__ident > .ms-mark[b-ajsr1zaqrd] { flex: none; }
/* Para que ms-truncate funcione dentro de un flex hay que dejarlo encoger. */
.ms-eventos__ident-text > .ms-eventos__titulo[b-ajsr1zaqrd] { min-width: 0; flex: 0 1 auto; }
.ms-eventos__meta[b-ajsr1zaqrd] { gap: 6px; flex-wrap: wrap; }

/* Rejilla de secciones. Las tarjetas las pinta ExpandablePanel: ::deep. */
.ms-eventos__panel[b-ajsr1zaqrd] {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}
.ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--12 { grid-column: span 12; }
.ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--6 { grid-column: span 6; min-height: 100%;}
.ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--4 { grid-column: span 4; }
.ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--3 { grid-column: span 3; }

/* Con una expandida, esa va arriba a todo el ancho. */
.ms-eventos__panel.is-expandido[b-ajsr1zaqrd]  .ms-eventos__sec.is-grande { grid-column: 1 / -1; order: -1; }

.ms-eventos__desc[b-ajsr1zaqrd] {
    font-size: 13px;
    color: var(--ms-text-2);
    line-height: 1.55;
}

.ms-eventos__skel[b-ajsr1zaqrd] { display: flex; flex-direction: column; gap: 10px; padding: 16px; }

/* Fases */
.ms-eventos__fases[b-ajsr1zaqrd] { display: flex; flex-direction: column; }

.ms-eventos__fase[b-ajsr1zaqrd] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-right: 10px;
    border-bottom: 1px solid var(--ms-border-soft);
    transition: background var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}

.ms-eventos__fase-btn[b-ajsr1zaqrd] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 6px 9px 16px;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

/* Editar / eliminar en filas de fases y unidades. */
.ms-eventos__acciones[b-ajsr1zaqrd] { flex: none; display: inline-flex; align-items: center; gap: 2px; }
.ms-eventos__peligro:hover[b-ajsr1zaqrd] { color: var(--ms-danger); background: var(--ms-danger-bg); }
.ms-eventos__td-acciones[b-ajsr1zaqrd] { width: 1%; white-space: nowrap; text-align: right; }

/* Estado vacío con acción: el siguiente peldaño de la escalera. */
.ms-eventos__vacio .ms-btn[b-ajsr1zaqrd] { margin-top: 10px; }
.ms-eventos__fase:last-child[b-ajsr1zaqrd] { border-bottom: 0; }
.ms-eventos__fase:hover[b-ajsr1zaqrd] { background: var(--ms-surface-2); }
.ms-eventos__fase.is-active[b-ajsr1zaqrd] { background: var(--ms-brand-soft); box-shadow: inset 3px 0 0 var(--ms-brand); }

.ms-eventos__fase-orden[b-ajsr1zaqrd] {
    flex: none;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 1px solid var(--ms-border);
    border-radius: 8px;
    background: var(--ms-surface-2);
    font-size: 12px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.ms-eventos__fase.is-active .ms-eventos__fase-orden[b-ajsr1zaqrd] {
    border-color: var(--ms-brand);
    background: var(--ms-brand);
    color: var(--ms-on-brand);
}

.ms-eventos__fase-side[b-ajsr1zaqrd] {
    flex: none;
    font-size: 13px;
    font-weight: 700;
    color: var(--ms-text);
    font-variant-numeric: tabular-nums;
}

/* Configuración */
.ms-eventos__config[b-ajsr1zaqrd] {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 16px;
}

.ms-eventos__cfg-sec[b-ajsr1zaqrd] { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ms-eventos__cfg-sec + .ms-eventos__cfg-sec[b-ajsr1zaqrd] { padding-top: 18px; border-top: 1px solid var(--ms-border-soft); }

.ms-eventos__cfg-cab[b-ajsr1zaqrd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 30px;
}

.ms-eventos__cfg-titulo[b-ajsr1zaqrd] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-eventos__cfg-opciones[b-ajsr1zaqrd] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
}

.ms-eventos__cfg-opcion[b-ajsr1zaqrd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 12px;
    border: 1px solid var(--ms-border-soft);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
}
.ms-eventos__cfg-opcion > .ms-badge[b-ajsr1zaqrd] { flex: none; }
.ms-eventos__cfg-opcion-texto[b-ajsr1zaqrd] { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ms-eventos__cfg-opcion-texto b[b-ajsr1zaqrd] { font-size: 13px; font-weight: 600; color: var(--ms-text); }
.ms-eventos__cfg-opcion-texto span[b-ajsr1zaqrd] { font-size: 12px; color: var(--ms-text-3); overflow-wrap: anywhere; }

/* Dos columnas en el orden del modal, cada tarjeta con su alto natural. */
.ms-eventos__cfg-grupos[b-ajsr1zaqrd] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 12px;
}
.ms-eventos__cfg-columna[b-ajsr1zaqrd] { display: flex; flex-direction: column; gap: 12px; min-width: 0; }

.ms-eventos__cfg-grupo[b-ajsr1zaqrd] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--ms-border-soft);
    border-radius: var(--ms-radius, 10px);
    background: var(--ms-surface-2);
}
.ms-eventos__cfg-grupo h4[b-ajsr1zaqrd] { font-size: 13px; font-weight: 700; color: var(--ms-text); }

.ms-eventos__cfg-datos[b-ajsr1zaqrd] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
    margin: 0;
}
.ms-eventos__cfg-dato[b-ajsr1zaqrd] { min-width: 0; }
.ms-eventos__cfg-dato dt[b-ajsr1zaqrd] { font-size: 11.5px; font-weight: 500; color: var(--ms-text-3); }
.ms-eventos__cfg-dato dd[b-ajsr1zaqrd] { margin: 2px 0 0; font-size: 13px; font-weight: 600; color: var(--ms-text); overflow-wrap: anywhere; }
.ms-eventos__cfg-dato dd.is-vacio[b-ajsr1zaqrd] { font-weight: 400; color: var(--ms-text-4); }

/* Una sola tarjeta: columna centrada, sin hueco vacío al lado. */
.ms-eventos__cfg-grupos--unico[b-ajsr1zaqrd] { grid-template-columns: minmax(0, 560px); justify-content: center; }
.ms-eventos__cfg-columna--centrada[b-ajsr1zaqrd] { align-items: center; }
.ms-eventos__cfg-columna--centrada > *[b-ajsr1zaqrd] { width: 100%; max-width: 560px; }
.ms-eventos__cfg-grupo--centrado[b-ajsr1zaqrd] { align-items: center; text-align: center; padding: 18px 20px; }
.ms-eventos__cfg-grupo--centrado h4[b-ajsr1zaqrd] { font-size: 14px; }
.ms-eventos__cfg-datos--centrados[b-ajsr1zaqrd] { width: 100%; justify-items: center; text-align: center; }
.ms-eventos__cfg-sub[b-ajsr1zaqrd] { margin: 0; font-size: 11.5px; font-weight: 500; color: var(--ms-text-3); }
.ms-eventos__cfg-vacio[b-ajsr1zaqrd] { margin: 0; font-size: 13px; color: var(--ms-text-4); }

/* Alturas como chips centrados. */
.ms-eventos__cfg-chips[b-ajsr1zaqrd] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.ms-eventos__cfg-chips li[b-ajsr1zaqrd] {
    padding: 5px 14px;
    border: 1px solid var(--ms-border-soft);
    border-radius: 999px;
    background: var(--ms-surface);
    font-size: 13px;
    font-weight: 700;
    color: var(--ms-text);
    font-variant-numeric: tabular-nums;
}

/* Intentos destacados + mejoras en lista vertical de ancho completo. */
.ms-eventos__cfg-intentos[b-ajsr1zaqrd] { display: flex; flex-direction: column; align-items: center; gap: 0; }
.ms-eventos__cfg-intentos-n[b-ajsr1zaqrd] { font-size: 26px; font-weight: 800; line-height: 1.1; color: var(--ms-text); font-variant-numeric: tabular-nums; }
.ms-eventos__cfg-intentos-label[b-ajsr1zaqrd] { font-size: 11.5px; font-weight: 500; color: var(--ms-text-3); }
.ms-eventos__cfg-mejoras[b-ajsr1zaqrd] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}
.ms-eventos__cfg-mejoras li[b-ajsr1zaqrd] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--ms-border-soft);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
}
.ms-eventos__cfg-mejora-n[b-ajsr1zaqrd] {
    flex: none;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.ms-eventos__cfg-mejora-txt[b-ajsr1zaqrd] { min-width: 0; font-size: 12.5px; color: var(--ms-text-3); overflow-wrap: anywhere; }
.ms-eventos__cfg-mejora-txt b[b-ajsr1zaqrd] { color: var(--ms-text); }
.ms-eventos__intermedios--centrados[b-ajsr1zaqrd] { justify-content: center; }

/* Sin configuración (reglas por clase, para no alcanzar el botón). */
.ms-eventos__cfg-vacia[b-ajsr1zaqrd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px dashed var(--ms-border);
    border-radius: var(--ms-radius, 10px);
}
.ms-eventos__cfg-vacia-icono[b-ajsr1zaqrd] {
    flex: none;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: var(--ms-radius, 10px);
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
}
.ms-eventos__cfg-vacia-icono[b-ajsr1zaqrd]  .ms-icon { width: 18px; height: 18px; }
.ms-eventos__cfg-vacia-texto[b-ajsr1zaqrd] { flex: 1; min-width: 180px; display: flex; flex-direction: column; gap: 2px; }
.ms-eventos__cfg-vacia-texto b[b-ajsr1zaqrd] { font-size: 13px; font-weight: 600; color: var(--ms-text); }
.ms-eventos__cfg-vacia-texto span[b-ajsr1zaqrd] { font-size: 12px; color: var(--ms-text-3); }

/* --- Configuración de la fase elegida, desplegada bajo su fila ------------------- */
.ms-eventos__fase-fila > td[b-ajsr1zaqrd] { padding: 0; background: var(--ms-surface-2); }
.ms-eventos__fase-fila:hover > td[b-ajsr1zaqrd] { background: var(--ms-surface-2); }

.ms-eventos__fase-cfg[b-ajsr1zaqrd] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 16px 18px;
    border-left: 3px solid var(--ms-brand);
    cursor: default;

    /* Las celdas de la tabla no parten líneas; aquí sí, que hay frases enteras. */
    white-space: normal;
}

.ms-eventos__intermedios[b-ajsr1zaqrd] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.ms-eventos__intermedios li[b-ajsr1zaqrd] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 3px 3px;
    border: 1px solid var(--ms-border-soft);
    border-radius: 999px;
    background: var(--ms-surface);
    font-size: 12.5px;
}
.ms-eventos__intermedios li b[b-ajsr1zaqrd] { font-weight: 600; color: var(--ms-text); }
.ms-eventos__intermedios li > span:last-child[b-ajsr1zaqrd] { color: var(--ms-text-3); }
.ms-eventos__intermedio-n[b-ajsr1zaqrd] {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
    font-size: 11px;
    font-weight: 700;
}

/* Pestañas Récords / Configuración, a la altura de los botones. */
.ms-eventos__vistas[b-ajsr1zaqrd] { padding: 2px; }
.ms-eventos__vista[b-ajsr1zaqrd] { flex: none; height: 26px; padding: 0 10px; font-size: 12px; }

/* Pills de sección: activa = panel visible. */
.ms-eventos__accesos[b-ajsr1zaqrd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-top: 1px solid var(--ms-border-soft);
}
.ms-eventos__acceso:not(.is-active)[b-ajsr1zaqrd] { color: var(--ms-text-3); }
button.ms-eventos__acceso.is-active:hover[b-ajsr1zaqrd] { background: var(--ms-brand-hover); border-color: var(--ms-brand-hover); color: var(--ms-on-brand); }

.ms-eventos__config-card .ms-eventos__config[b-ajsr1zaqrd] { padding: 16px 20px 20px; }

/* La «q» de clasificados por tiempo va en minúscula a propósito: es la notación
   del atletismo (Q por puesto, q por tiempo) y .ms-table thead th las pondría
   en mayúsculas, dejándola idéntica a la columna Q de al lado. */
.ms-eventos__q-min[b-ajsr1zaqrd] { text-transform: none; }

/* Separa las pestañas de las acciones del evento. */
.ms-eventos__tools-sep[b-ajsr1zaqrd] {
    width: 1px;
    height: 20px;
    margin: 0 2px;
    background: var(--ms-border);
}

@media (max-width: 767.98px) {
    .ms-eventos__cfg-grupos:not(.ms-eventos__cfg-grupos--unico)[b-ajsr1zaqrd] { grid-template-columns: minmax(0, 1fr); }
    .ms-eventos__cfg-datos[b-ajsr1zaqrd] { grid-template-columns: minmax(0, 1fr); }
    .ms-eventos__cfg-mejoras li[b-ajsr1zaqrd] { flex-direction: column; gap: 6px; text-align: center; }
}

.ms-eventos__desc[b-ajsr1zaqrd] {
    font-size: 13px;
    color: var(--ms-text-2);
    line-height: 1.55;
}

/* --- Modal ----------------------------------------------------------------- */
.ms-eventos__backdrop[b-ajsr1zaqrd] { position: absolute; inset: 0; }

.ms-eventos__modal[b-ajsr1zaqrd] {
    position: relative;
    z-index: 1;
    max-width: 1040px;
}

/* Formulario del modal: rejilla y paneles vienen del sistema (forms.css);
   aquí sólo lo específico del modal. */
.ms-eventos__modal .ms-modal__body[b-ajsr1zaqrd] { max-height: 74vh; }
.ms-eventos__modal .ms-modal__header[b-ajsr1zaqrd] { padding: 14px 16px 8px; }
.ms-eventos__modal .ms-modal__footer[b-ajsr1zaqrd] { padding: 10px 16px; }

.ms-eventos__modal .ms-field[b-ajsr1zaqrd] { gap: 3px; }
.ms-eventos__modal .ms-textarea[b-ajsr1zaqrd] { min-height: 48px; }

/* Los controles suben a fondo de tarjeta para contrastar sobre el panel. */
.ms-eventos__modal .ms-form-section .ms-input[b-ajsr1zaqrd],
.ms-eventos__modal .ms-form-section .ms-select[b-ajsr1zaqrd],
.ms-eventos__modal .ms-form-section .ms-textarea[b-ajsr1zaqrd],
.ms-eventos__modal .ms-form-section .ms-option:not(.is-active)[b-ajsr1zaqrd] {
    background-color: var(--ms-surface);
}

/* --- Estrecho -------------------------------------------------------------- */
@media (max-width: 1199.98px) {
    .ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--6 { grid-column: span 12; }
    .ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--4,
    .ms-eventos__panel[b-ajsr1zaqrd]  .ms-eventos__sec--3 { grid-column: span 6; }
}

@media (max-width: 991.98px) {
    .ms-eventos[b-ajsr1zaqrd] { grid-template-columns: minmax(0, 1fr); }
    .ms-eventos__lista[b-ajsr1zaqrd] { position: static; }
}
/* /Components/Pages/EventPhaseConfigAtEditor.razor.rz.scp.css */
/* ============================================================================
   Configuración de una fase: la clasificación siempre, y debajo lo del tipo de
   prueba — alturas, mejoras o pasos intermedios.
   ========================================================================== */

.ms-fase-cfg[b-b1gsoxbjpe] { max-width: 860px; }

.ms-fase-cfg .ms-switch-row[b-b1gsoxbjpe] { padding-left: 0; padding-right: 0; }

/* El botón de los valores habituales se alinea con los campos de al lado. */
.ms-fase-cfg__tipicas[b-b1gsoxbjpe] { align-self: end; }

/* --- Alturas ------------------------------------------------------------------ */
.ms-fase-cfg__alturas[b-b1gsoxbjpe] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: altura;
}

.ms-fase-cfg__alturas li[b-b1gsoxbjpe] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 3px 8px;
    border: 1px solid var(--ms-border-soft);
    border-radius: var(--ms-radius-xs);
    background: var(--ms-surface-2);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text);
}

/* Lo que no se entiende como altura se marca, pero no se borra lo escrito. */
.ms-fase-cfg__alturas li.is-invalida[b-b1gsoxbjpe] {
    border-color: var(--ms-danger);
    background: var(--ms-danger-bg);
    color: var(--ms-danger);
}

.ms-fase-cfg__alturas li[b-b1gsoxbjpe]::before {
    counter-increment: altura;
    content: counter(altura);
    font-size: 10px;
    font-weight: 700;
    color: var(--ms-text-4);
}

/* --- Mejoras y pasos intermedios ----------------------------------------------- */
.ms-fase-cfg__mejoras[b-b1gsoxbjpe],
.ms-fase-cfg__intermedios[b-b1gsoxbjpe] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.ms-fase-cfg__cabecera[b-b1gsoxbjpe],
.ms-fase-cfg__fila[b-b1gsoxbjpe] {
    display: grid;
    grid-template-columns: 28px minmax(0, 2fr) minmax(90px, 1fr) minmax(0, 2fr) auto;
    gap: 8px;
    align-items: start;
    width: 100%;
}

.ms-fase-cfg__cabecera--mejora[b-b1gsoxbjpe],
.ms-fase-cfg__fila--mejora[b-b1gsoxbjpe] { grid-template-columns: 28px minmax(0, 1fr) minmax(90px, 1fr) minmax(0, 1.6fr); }

.ms-fase-cfg__cabecera[b-b1gsoxbjpe] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-fase-cfg__orden[b-b1gsoxbjpe] {
    display: grid;
    place-items: center;
    height: 36px;
    font-size: 12px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text-3);
}

.ms-fase-cfg__acciones[b-b1gsoxbjpe] { display: inline-flex; align-items: center; gap: 2px; padding-top: 4px; }
.ms-fase-cfg__acciones button:disabled[b-b1gsoxbjpe] { opacity: .35; pointer-events: none; }
.ms-fase-cfg__peligro:hover[b-b1gsoxbjpe] { color: var(--ms-danger); background: var(--ms-danger-bg); }

@media (max-width: 575.98px) {
    .ms-fase-cfg__cabecera[b-b1gsoxbjpe] { display: none; }
    .ms-fase-cfg__fila[b-b1gsoxbjpe] { grid-template-columns: 28px minmax(0, 1fr) auto; }
    .ms-fase-cfg__fila > .ms-field[b-b1gsoxbjpe] { grid-column: 2; }
    .ms-fase-cfg__fila > .ms-fase-cfg__acciones[b-b1gsoxbjpe] { grid-column: 3; grid-row: 1; }
    .ms-fase-cfg__fila--mejora[b-b1gsoxbjpe] { grid-template-columns: 28px minmax(0, 1fr); }
}
/* /Components/Pages/EventPhaseEditor.razor.rz.scp.css */
.ms-fase-editor[b-7bsasemiw0] { max-width: 720px; }
/* /Components/Pages/EventRecordEditor.razor.rz.scp.css */
.ms-record-editor[b-z5vprw1myq] { max-width: 760px; }

.ms-record-editor__mas[b-z5vprw1myq] {
    border-top: 1px solid var(--ms-border-soft);
    padding-top: 12px;
}

.ms-record-editor__mas > summary[b-z5vprw1myq] {
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text-2);
}

.ms-record-editor__mas > summary:hover[b-z5vprw1myq] { color: var(--ms-text); }

.ms-record-editor__mas[open] > .ms-form[b-z5vprw1myq] { margin-top: 14px; }
/* /Components/Pages/EventUnitEditor.razor.rz.scp.css */
.ms-unidad-editor[b-4r7g3oa8pr] { max-width: 720px; }

/* Estados: cada opción es su propio badge de color; el elegido se enmarca. */
.ms-unidad-editor__estados[b-4r7g3oa8pr] { display: flex; flex-wrap: wrap; gap: 6px; }

.ms-unidad-editor__estado[b-4r7g3oa8pr] {
    display: inline-flex;
    padding: 3px;
    border: 1px solid transparent;
    border-radius: var(--ms-radius-pill);
    background: none;
    cursor: pointer;
    opacity: .55;
    transition: opacity var(--ms-dur) var(--ms-ease), border-color var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-unidad-editor__estado:hover[b-4r7g3oa8pr] { opacity: 1; }
.ms-unidad-editor__estado.is-active[b-4r7g3oa8pr] { opacity: 1; border-color: var(--ms-brand); box-shadow: 0 0 0 2px var(--ms-brand-soft); }
.ms-unidad-editor__estado:focus-visible[b-4r7g3oa8pr] { outline: 2px solid var(--ms-brand); outline-offset: 1px; }

/* El interruptor ocupa la altura de un campo, alineado con el de al lado. */
.ms-unidad-editor .ms-switch-row[b-4r7g3oa8pr] { height: 100%; padding: 0; border-bottom: 0; align-items: flex-end; }
/* /Components/Pages/Home.razor.rz.scp.css */
.ms-home__kpis[b-3q19x9a25g] { gap: 12px; }

.ms-home__kpi-skel[b-3q19x9a25g] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.ms-home__skel-lines[b-3q19x9a25g] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

.ms-home__linea[b-3q19x9a25g] {
    margin-top: 10px;
    padding: 14px;
}

.ms-home__linea-head[b-3q19x9a25g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.ms-home__linea-head h2[b-3q19x9a25g] {
    margin: 0;
    font-size: 14px;
}

.ms-home__linea-head span[b-3q19x9a25g] {
    font-size: 12px;
    color: var(--ms-text-3);
}

.ms-home__rail[b-3q19x9a25g] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(240px, 280px);
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.ms-home__chip[b-3q19x9a25g] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 56px;
    padding: 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
    color: var(--ms-text-2);
    text-align: left;
}

.ms-home__chip:hover[b-3q19x9a25g] {
    border-color: var(--ms-brand-border);
    background: var(--ms-surface);
}

.ms-home__chip.is-active[b-3q19x9a25g] {
    border-color: var(--ms-brand);
    background: var(--ms-brand-soft-hover);
    color: var(--ms-brand);
}

.ms-home__chip-meta[b-3q19x9a25g] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.ms-home__chip-meta b[b-3q19x9a25g] {
    font-size: 12.5px;
    color: var(--ms-text);
}

.ms-home__chip-meta span[b-3q19x9a25g] {
    font-size: 10.5px;
    color: var(--ms-text-3);
}

@media (max-width: 767.98px) {
    .ms-home__linea[b-3q19x9a25g] { padding: 12px; }
    .ms-home__rail[b-3q19x9a25g] { grid-auto-columns: minmax(220px, 240px); }
}
/* /Components/Pages/Inscripciones/InscriptionsManager.razor.rz.scp.css */
/* ============================================================================
   Inscripciones — dos columnas: deportistas (izquierda) y pruebas del
   campeonato (derecha). Las inscripciones pendientes se revisan en un modal.
   ========================================================================== */

.ms-inscrip[b-i0ejkwfw2d] {
    display: grid;
    grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.ms-inscrip__atletas[b-i0ejkwfw2d],
.ms-inscrip__pruebas[b-i0ejkwfw2d] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* --- Filtros ------------------------------------------------------------- */
.ms-inscrip__filtros[b-i0ejkwfw2d] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 0 16px 12px;
}
.ms-inscrip__pruebas .ms-inscrip__filtros[b-i0ejkwfw2d] { grid-template-columns: minmax(0, 1fr); }
.ms-inscrip__filtros .ms-select[b-i0ejkwfw2d] { width: 100%; }

.ms-inscrip__chips[b-i0ejkwfw2d] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 6px;
    padding: 0 16px 12px;
}
.ms-inscrip__sep[b-i0ejkwfw2d] { flex: none; width: 1px; height: 16px; background: var(--ms-border); }

.ms-inscrip__campo-camp[b-i0ejkwfw2d] { display: flex; flex-direction: column; gap: 8px; }

/* Buscador + filtros de pruebas en una sola fila. */
.ms-inscrip__filtros-pruebas[b-i0ejkwfw2d] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 0 16px 12px;
}
.ms-inscrip__filtros-buscar[b-i0ejkwfw2d] { flex: 1 1 220px; min-width: 0; }
.ms-inscrip__filtros-buscar .ms-input-group[b-i0ejkwfw2d] { width: 100%; }
.ms-inscrip__filtro-categoria[b-i0ejkwfw2d] { flex: 0 0 auto; width: auto; max-width: 200px; }
.ms-inscrip__filtro-orden[b-i0ejkwfw2d] { flex: 0 0 auto; width: auto; max-width: 190px; }
.ms-inscrip__check[b-i0ejkwfw2d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    font-size: var(--ms-fs-sm);
    color: var(--ms-text-2);
    white-space: nowrap;
    cursor: pointer;
}
.ms-inscrip__check .ms-check[b-i0ejkwfw2d] { margin: 0; }
.ms-inscrip__filtros-pruebas .ms-inscrip__chips[b-i0ejkwfw2d] { padding: 0; margin-left: auto; }

/* Pill del campeonato seleccionado (sustituye al buscador + selector). */
.ms-inscrip__pill[b-i0ejkwfw2d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    max-width: 100%;
    padding: 5px 6px 5px 10px;
    border: 1px solid var(--ms-brand);
    border-radius: 999px;
    background: var(--ms-brand-soft);
    color: var(--ms-text);
    font-size: 12.5px;
    font-weight: 600;
}
.ms-inscrip__pill > span[b-i0ejkwfw2d] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-inscrip__pill-x[b-i0ejkwfw2d] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: none;
    color: inherit;
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}
.ms-inscrip__pill-x:hover[b-i0ejkwfw2d] { background: var(--ms-brand); color: #fff; }

/* La lista de deportistas hace scroll en su panel, no en la página. */
.ms-inscrip__scroll[b-i0ejkwfw2d] {
    max-height: min(52vh, 440px);
    overflow-y: auto;
    padding: 0;
}

.ms-inscrip__lista[b-i0ejkwfw2d] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.ms-inscrip__atleta[b-i0ejkwfw2d] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 14px;
    border: 0;
    border-bottom: 1px solid var(--ms-border-soft);
    background: none;
    color: var(--ms-text);
    text-align: left;
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-inscrip__atleta:hover[b-i0ejkwfw2d] { background: var(--ms-surface-2); }
.ms-inscrip__atleta.is-active[b-i0ejkwfw2d] { background: var(--ms-brand-soft); box-shadow: inset 3px 0 0 var(--ms-brand); }

.ms-inscrip__atleta-meta[b-i0ejkwfw2d] { min-width: 0; flex: 1; }
.ms-inscrip__atleta-meta b[b-i0ejkwfw2d] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-inscrip__atleta-meta > span[b-i0ejkwfw2d] {
    display: block;
    font-size: 11.5px;
    color: var(--ms-text-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-inscrip__atleta-check[b-i0ejkwfw2d] { flex: none; color: var(--ms-brand); }
.ms-inscrip__atleta--skel[b-i0ejkwfw2d] { pointer-events: none; }

/* --- Columna derecha: campeonato y pruebas ------------------------------- */
.ms-inscrip__atleta-sel[b-i0ejkwfw2d] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 0 8px;
    padding: 8px 12px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface-2);
}
.ms-inscrip__atleta-sel-head[b-i0ejkwfw2d] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 1 auto;
    min-width: 0;
}

.ms-inscrip__atleta-dorsal[b-i0ejkwfw2d] {
    flex: none;
    display: flex;
    align-items: center;
    gap: 6px;
    padding-left: 12px;
    border-left: 1px solid var(--ms-border);
}
.ms-inscrip__atleta-dorsal .ms-label[b-i0ejkwfw2d] { margin: 0; }
.ms-input--dorsal[b-i0ejkwfw2d] {
    width: 72px;
    padding-left: 8px;
    padding-right: 8px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.ms-inscrip__pruebas-lista[b-i0ejkwfw2d] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: min(40vh, 400px);
    overflow-y: auto;
}
.ms-inscrip__prueba-fila[b-i0ejkwfw2d] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
    transition: background var(--ms-dur) var(--ms-ease), border-color var(--ms-dur) var(--ms-ease);
}
.ms-inscrip__prueba-fila:hover[b-i0ejkwfw2d] { background: var(--ms-surface-2); }
.ms-inscrip__prueba-fila.is-marcada[b-i0ejkwfw2d] { border-color: var(--ms-brand); background: var(--ms-brand-soft); }
.ms-inscrip__prueba-fila.is-ya[b-i0ejkwfw2d] { background: var(--ms-surface-2); }
.ms-inscrip__prueba-fila.is-incompatible[b-i0ejkwfw2d] { opacity: .6; }

.ms-inscrip__prueba[b-i0ejkwfw2d] {
    flex: 1 1 auto;
    flex-wrap: wrap;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ms-text);
}
.ms-inscrip__prueba .ms-check[b-i0ejkwfw2d] { cursor: pointer; }
.ms-inscrip__prueba-fila.is-ya .ms-inscrip__prueba .ms-check[b-i0ejkwfw2d],
.ms-inscrip__prueba-fila.is-incompatible .ms-inscrip__prueba .ms-check[b-i0ejkwfw2d] { cursor: not-allowed; }

/* Nombre y subtítulo en una sola línea para que la fila sea compacta. */
.ms-inscrip__prueba-texto[b-i0ejkwfw2d] {
    min-width: 0;
    flex: 0 1 auto;
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.ms-inscrip__prueba-texto > *[b-i0ejkwfw2d] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-inscrip__prueba-texto b[b-i0ejkwfw2d] { font-size: 13px; font-weight: 600; color: var(--ms-text); }
.ms-inscrip__prueba-texto > span[b-i0ejkwfw2d] { font-size: 11.5px; color: var(--ms-text-3); }
.ms-inscrip__prueba--skel[b-i0ejkwfw2d] { pointer-events: none; }

.ms-inscrip__datos[b-i0ejkwfw2d] {
    flex: none;
    display: flex;
    align-items: center;
    gap: 8px;
}
.ms-inscrip__dato[b-i0ejkwfw2d] { display: inline-flex; align-items: center; gap: 4px; }
.ms-inscrip__dato-tag[b-i0ejkwfw2d] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--ms-text-3);
}
.ms-input--marca[b-i0ejkwfw2d] {
    width: 64px;
    padding-left: 6px;
    padding-right: 6px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* --- Tabla de pruebas ---------------------------------------------------- */
.ms-inscrip__tabla-wrap[b-i0ejkwfw2d] {
    max-height: min(46vh, 460px);
    overflow: auto;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
}
.ms-inscrip__tabla[b-i0ejkwfw2d] {
    width: 100%;
    border-collapse: collapse;
}
.ms-inscrip__tabla thead th[b-i0ejkwfw2d] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--ms-surface-2);
    padding: 7px 10px;
    border-bottom: 1px solid var(--ms-border);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--ms-text-3);
    text-align: left;
    white-space: nowrap;
}
.ms-inscrip__tabla tbody td[b-i0ejkwfw2d] {
    padding: 5px 10px;
    border-bottom: 1px solid var(--ms-border-soft);
    vertical-align: middle;
}
.ms-inscrip__tabla tbody tr:last-child td[b-i0ejkwfw2d] { border-bottom: 0; }
.ms-inscrip__tabla-check[b-i0ejkwfw2d] { width: 34px; text-align: center; }
.ms-inscrip__tabla-marca[b-i0ejkwfw2d] { width: 112px; }

.ms-inscrip__fila.is-marcada[b-i0ejkwfw2d] { background: var(--ms-brand-soft); }
.ms-inscrip__fila.is-ya[b-i0ejkwfw2d] { background: var(--ms-surface-2); }
.ms-inscrip__fila.is-incompatible[b-i0ejkwfw2d] { opacity: .6; }
.ms-inscrip__fila:hover[b-i0ejkwfw2d] { background: var(--ms-surface-2); }
.ms-inscrip__fila .ms-check[b-i0ejkwfw2d] { cursor: pointer; }
.ms-inscrip__fila.is-ya .ms-check[b-i0ejkwfw2d],
.ms-inscrip__fila.is-incompatible .ms-check[b-i0ejkwfw2d] { cursor: not-allowed; }

.ms-inscrip__marca[b-i0ejkwfw2d] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.ms-inscrip__marca .ms-input--marca[b-i0ejkwfw2d] { width: 60px; }
.ms-inscrip__marca .ms-input.is-dirty[b-i0ejkwfw2d] {
    border-color: var(--ms-warning);
    box-shadow: inset 0 0 0 1px var(--ms-warning);
}
.ms-inscrip__marca .ms-input.is-saved[b-i0ejkwfw2d] { border-color: var(--ms-success); }
.ms-inscrip__marca-save[b-i0ejkwfw2d] { color: var(--ms-text-4); }
.ms-inscrip__marca-save.is-saved[b-i0ejkwfw2d] { color: var(--ms-success); }

.ms-inscrip__sin-guardar[b-i0ejkwfw2d] { color: var(--ms-warning); font-weight: 600; }

.ms-inscrip__pie[b-i0ejkwfw2d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.ms-inscrip__acciones[b-i0ejkwfw2d] { display: flex; align-items: center; gap: 8px; }

/* --- Modal: inscripciones pendientes de confirmar ------------------------ */
.ms-inscrip__modal[b-i0ejkwfw2d] { width: min(640px, 100%); max-width: 640px; }
.ms-inscrip__detalle-cab[b-i0ejkwfw2d] {
    padding-bottom: 10px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--ms-border-soft);
}
.ms-inscrip__detalle-cab > span[b-i0ejkwfw2d] { display: block; font-size: 11.5px; color: var(--ms-text-2); }
.ms-inscrip__detalle-lista[b-i0ejkwfw2d] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.ms-inscrip__detalle-item[b-i0ejkwfw2d] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--ms-border-soft);
}
.ms-inscrip__detalle-item:last-child[b-i0ejkwfw2d] { border-bottom: 0; }

.ms-inscrip__historial-texto[b-i0ejkwfw2d] { min-width: 0; flex: 1; }
.ms-inscrip__historial-texto b[b-i0ejkwfw2d] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-inscrip__historial-texto > span[b-i0ejkwfw2d] {
    display: block;
    font-size: 11.5px;
    color: var(--ms-text-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-inscrip__historial-fila[b-i0ejkwfw2d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.ms-inscrip__historial-fila b[b-i0ejkwfw2d] { flex: 1; min-width: 0; }
.ms-inscrip__historial-fila .ms-inscrip__historial-tag[b-i0ejkwfw2d] { flex: none; }

.ms-inscrip__historial-marcas[b-i0ejkwfw2d] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
}
.ms-inscrip__historial-campo[b-i0ejkwfw2d] { display: inline-flex; align-items: center; gap: 4px; }
.ms-inscrip__historial-tag[b-i0ejkwfw2d] {
    padding: 1px 7px;
    border: 1px solid var(--ms-border);
    border-radius: 999px;
    background: var(--ms-surface-2);
    color: var(--ms-text-2);
    font-size: 10.5px;
    font-weight: 600;
    white-space: nowrap;
}
.ms-inscrip__historial-tag--bib[b-i0ejkwfw2d] {
    border-color: var(--ms-brand-border);
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
}

/* En pantallas estrechas, una sola columna y sin scroll interno. */
@media (max-width: 991.98px) {
    .ms-inscrip[b-i0ejkwfw2d] { grid-template-columns: minmax(0, 1fr); }
    .ms-inscrip__pruebas .ms-inscrip__filtros[b-i0ejkwfw2d] { grid-template-columns: minmax(0, 1fr); }
    .ms-inscrip__scroll[b-i0ejkwfw2d],
    .ms-inscrip__pruebas-lista[b-i0ejkwfw2d] { max-height: none; }
}
/* /Components/Pages/InscriptionEditor.razor.rz.scp.css */
.ms-inscripcion-editor[b-i2kzsdt2ka] { max-width: 640px; }
/* /Components/Pages/InscriptionPersonPicker.razor.rz.scp.css */
/* ============================================================================
   Selector de personas para inscribir: mismo esquema que el selector de pruebas
   (EventCatalogPicker), filtros en una línea, buscador y lista con casilla y «+».
   ========================================================================== */

.ms-selector[b-ccafa1s7ge] { max-width: 760px; }

.ms-selector__filtros[b-ccafa1s7ge] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 16px 10px;
    overflow-x: auto;
    scrollbar-width: none;
}
.ms-selector__filtros[b-ccafa1s7ge]::-webkit-scrollbar { display: none; }
.ms-selector__filtros > .ms-chip[b-ccafa1s7ge] { flex: none; white-space: nowrap; }

.ms-selector__sep[b-ccafa1s7ge] { flex: none; width: 1px; height: 16px; background: var(--ms-border); }

.ms-selector__buscador[b-ccafa1s7ge] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 16px 12px;
    border-bottom: 1px solid var(--ms-border-soft);
}
.ms-selector__buscador .ms-input-group[b-ccafa1s7ge] { flex: 1; min-width: 0; }
.ms-selector__buscador > span[b-ccafa1s7ge] { flex: none; white-space: nowrap; }

.ms-selector__body[b-ccafa1s7ge] { padding: 0; max-height: min(56vh, 520px); overflow-y: auto; }

.ms-selector__lista[b-ccafa1s7ge] { list-style: none; margin: 0; padding: 0; }

.ms-selector__item[b-ccafa1s7ge] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-right: 12px;
    border-bottom: 1px solid var(--ms-border-soft);
    transition: background var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-selector__item:last-child[b-ccafa1s7ge] { border-bottom: 0; }
.ms-selector__item:hover[b-ccafa1s7ge] { background: var(--ms-surface-2); }
.ms-selector__item.is-marcada[b-ccafa1s7ge] { background: var(--ms-brand-soft); box-shadow: inset 3px 0 0 var(--ms-brand); }

.ms-selector__check[b-ccafa1s7ge] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 6px 9px 16px;
    cursor: pointer;
}
.ms-selector__item.is-anadida .ms-selector__check[b-ccafa1s7ge] { cursor: default; }
.ms-selector__item.is-anadida .ms-selector__texto[b-ccafa1s7ge] { opacity: .6; }

.ms-selector__texto[b-ccafa1s7ge] { min-width: 0; flex: 1; }
.ms-selector__texto b[b-ccafa1s7ge],
.ms-selector__texto span[b-ccafa1s7ge] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-selector__texto b[b-ccafa1s7ge] { font-size: 13px; font-weight: 600; color: var(--ms-text); }
.ms-selector__texto span[b-ccafa1s7ge] { font-size: 11.5px; color: var(--ms-text-3); }

.ms-selector__mas[b-ccafa1s7ge] { color: var(--ms-brand); }
.ms-selector__mas:hover:not(:disabled)[b-ccafa1s7ge] { background: var(--ms-brand-soft); }

.ms-selector__aviso[b-ccafa1s7ge] { padding: 10px 16px; font-size: 12px; color: var(--ms-text-3); text-align: center; }

/* El mismo hueco cuando lo que lleva son botones (quitar filtros, crear persona)
   y no texto: sin flex se pegarían el uno al otro. */
.ms-selector__aviso--acciones[b-ccafa1s7ge] { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }

.ms-selector__footer[b-ccafa1s7ge] { flex-wrap: wrap; gap: 8px; }
.ms-selector__hueco[b-ccafa1s7ge] { flex: 1; }

@media (max-width: 575.98px) {
    .ms-selector__hueco[b-ccafa1s7ge] { flex-basis: 100%; height: 0; }
}
/* /Components/Pages/Organizations/OrganizationDetail.razor.rz.scp.css */
/* OrganizationDetail — sólo lo que no cubren las clases ms-* globales. */

.ms-ficha[b-4n6rcg0zn1] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ms-ficha[b-4n6rcg0zn1]  .ms-card__header h2 .ms-tabs__count { margin-left: 4px; vertical-align: 1px; }

.ms-ficha__enlace[b-4n6rcg0zn1] {
    color: inherit;
    text-decoration: none;
}

.ms-ficha__enlace:hover b[b-4n6rcg0zn1] { color: var(--ms-brand); }

/* Botones de la fila en edición: siempre visibles, no sólo al pasar el ratón. */
.ms-ficha__acciones[b-4n6rcg0zn1] {
    display: inline-flex;
    gap: 2px;
}

.ms-ficha .ms-table .ms-input[b-4n6rcg0zn1] {
    height: 32px;
    min-width: 120px;
}

/* ============================================================================
   INSCRIPCIONES — campeonatos desplegables
   ========================================================================== */
.ms-insc[b-4n6rcg0zn1] { border-bottom: 1px solid var(--ms-border-soft); }
.ms-insc:last-child[b-4n6rcg0zn1] { border-bottom: 0; }

.ms-insc__fila[b-4n6rcg0zn1] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
}

.ms-insc__enlace[b-4n6rcg0zn1] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}
.ms-insc__enlace:hover b[b-4n6rcg0zn1] { color: var(--ms-brand); }

.ms-insc__cuentas[b-4n6rcg0zn1] { display: flex; align-items: center; gap: 6px; margin-left: auto; flex: none; }
.ms-insc__chev[b-4n6rcg0zn1] { flex: none; color: var(--ms-text-3); }

.ms-insc__meta[b-4n6rcg0zn1] { min-width: 0; }
.ms-insc__meta b[b-4n6rcg0zn1] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-insc__meta span[b-4n6rcg0zn1] {
    display: block;
    font-size: 11.5px;
    color: var(--ms-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-insc__panel[b-4n6rcg0zn1] {
    padding: 0 16px 14px;
    background: var(--ms-surface-2);
    border-top: 1px solid var(--ms-border-soft);
}

.ms-insc__vacio[b-4n6rcg0zn1] { margin: 12px 0 0; }

/* Modal de inscripción */
.ms-ficha__backdrop[b-4n6rcg0zn1] { position: absolute; inset: 0; }
.ms-ficha__modal[b-4n6rcg0zn1] { position: relative; z-index: 1; }
/* /Components/Pages/Organizations/OrganizationEditor.razor.rz.scp.css */
/* OrganizationEditor — misma "hoja" que UserEditor.razor.css: barra de
   acciones pegajosa y el formulario debajo, en el flujo de la página. */

.ms-sheet[b-6gwklhdys5] {
    animation: ms-sheet-in-b-6gwklhdys5 .18s var(--ms-ease);
}

@keyframes ms-sheet-in-b-6gwklhdys5 {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ms-sheet[b-6gwklhdys5] { animation: none; }
}

/* El <form> lo pinta EditForm: sin el atributo de ámbito, hay que usar ::deep. */
.ms-sheet[b-6gwklhdys5]  form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ms-sheet__bar[b-6gwklhdys5] {
    position: sticky;
    top: var(--ms-topbar-h);
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-lg);
    box-shadow: var(--ms-shadow-sm);
}

.ms-sheet__ident[b-6gwklhdys5] {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.ms-sheet__ident-text[b-6gwklhdys5] { min-width: 0; }

.ms-sheet__ident-text h1[b-6gwklhdys5] {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ms-text);
    line-height: 1.3;
}

.ms-sheet__bar-end[b-6gwklhdys5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex: none;
}

.ms-sheet__inner[b-6gwklhdys5] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 8px;
}

/* --- Formulario compacto ---------------------------------------------------
   Menos altura: filas con anchos a medida en lugar de dos columnas iguales,
   el código en la cabecera de su tarjeta y los interruptores sin descripción. */
.ms-org-form[b-6gwklhdys5] { gap: 14px; }

.ms-org-form__fila--ancho-estrecho[b-6gwklhdys5] { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.ms-org-form__fila--estrecho-ancho[b-6gwklhdys5] { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }

.ms-org-form__codigo[b-6gwklhdys5] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: none;
}

.ms-org-form__codigo .ms-label[b-6gwklhdys5] { margin: 0; }
.ms-org-form__codigo[b-6gwklhdys5]  .ms-input { width: 110px; height: 32px; text-transform: uppercase; }

.ms-org-form[b-6gwklhdys5]  .ms-textarea { min-height: 60px; }

.ms-org-form__switches[b-6gwklhdys5] { padding-top: 4px; padding-bottom: 4px; }
.ms-org-form__switches .ms-switch-row[b-6gwklhdys5] { padding: 9px 0; }

@media (max-width: 767.98px) {
    .ms-org-form__fila--ancho-estrecho[b-6gwklhdys5],
    .ms-org-form__fila--estrecho-ancho[b-6gwklhdys5] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
    .ms-sheet__bar[b-6gwklhdys5] { padding: 10px 12px; gap: 8px; flex-wrap: wrap; }
    .ms-sheet__ident[b-6gwklhdys5] { order: 3; width: 100%; }
    .ms-sheet__bar-end[b-6gwklhdys5] { gap: 6px; }
    .ms-sheet__bar-end > .ms-btn--ghost[b-6gwklhdys5] { display: none; }
}
/* /Components/Pages/Organizations/OrganizationInscriptionDetail.razor.rz.scp.css */
/* OrganizationInscriptionDetail — detalle de inscripciones de una organización. */

.ms-insd__resumen[b-9cfep6fdno] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ms-insd__tags[b-9cfep6fdno] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

/* --- Vista por prueba: lista desplegable -------------------------------- */
.ms-insd__pruebas[b-9cfep6fdno] {
    display: flex;
    flex-direction: column;
}

.ms-insd__prueba[b-9cfep6fdno] { border-bottom: 1px solid var(--ms-border-soft); }
.ms-insd__prueba:last-child[b-9cfep6fdno] { border-bottom: 0; }

.ms-insd__prueba-head[b-9cfep6fdno] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 11px 16px;
    border: 0;
    background: none;
    color: var(--ms-text);
    text-align: left;
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease);
}
.ms-insd__prueba-head:hover[b-9cfep6fdno] { background: var(--ms-surface-2); }
.ms-insd__prueba-head > .ms-icon[b-9cfep6fdno] { flex: none; color: var(--ms-text-3); }
.ms-insd__prueba-head > .ms-badge[b-9cfep6fdno] { flex: none; margin-left: auto; }

.ms-insd__prueba-nombre[b-9cfep6fdno] {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-insd__atletas[b-9cfep6fdno] {
    list-style: none;
    margin: 0;
    padding: 10px 16px 12px 44px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: var(--ms-surface-2);
    border-top: 1px solid var(--ms-border-soft);
}
.ms-insd__atletas li[b-9cfep6fdno] { display: flex; align-items: center; gap: 10px; }

.ms-insd__atleta-meta[b-9cfep6fdno] { min-width: 0; }
.ms-insd__atleta-meta b[b-9cfep6fdno] { display: block; font-size: 12.5px; font-weight: 600; color: var(--ms-text); }
.ms-insd__atleta-meta > span[b-9cfep6fdno] { display: block; font-size: 11px; color: var(--ms-text-3); }
/* /Components/Pages/Organizations/OrganizationShield.razor.rz.scp.css */
/* Escudo de organización — adaptado de Federaciones.razor.css del proyecto
   de diseño. Las siglas llegan a cinco letras (FETRI, FACYL), así que el tipo
   es más pequeño y apretado que el de un avatar de persona. */

.ms-escudo[b-8mni48nw17] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
}

.ms-escudo--sm[b-8mni48nw17] { width: 30px; height: 30px; }
.ms-escudo--lg[b-8mni48nw17] { width: 44px; height: 44px; }
.ms-escudo--xl[b-8mni48nw17] { width: 72px; height: 72px; }

.ms-avatar--square[b-8mni48nw17] {
    border-radius: var(--ms-radius-sm);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: -.04em;
}

.ms-escudo--lg .ms-avatar--square[b-8mni48nw17] { font-size: 12px; border-radius: var(--ms-radius); }
.ms-escudo--xl .ms-avatar--square[b-8mni48nw17] { font-size: 19px; border-radius: var(--ms-radius-lg); }
/* /Components/Pages/Organizations/OrganizationsManager.razor.rz.scp.css */
/* ============================================================================
   OrganizationsManager.razor.css — listado de organizaciones.
   ----------------------------------------------------------------------------
   Adaptado de Federaciones.razor.css y Licencias.razor.css del proyecto de
   diseño. Sólo lo que no cubren las clases ms-* globales.
   ========================================================================== */

.ms-orgs[b-3vv031dq6c] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ---------- Cabecera: texto a la izquierda, acción + KPIs a la derecha ---------- */
.ms-orgs__cabecera[b-3vv031dq6c] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px 32px;
    align-items: stretch;
}

.ms-orgs__cabecera-texto[b-3vv031dq6c] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}

.ms-orgs__cabecera-lado[b-3vv031dq6c] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.ms-orgs__acciones[b-3vv031dq6c] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* ---------- Deporte ---------- */
.ms-orgs__deportes[b-3vv031dq6c] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ms-orgs__deportes .ms-label[b-3vv031dq6c] { margin: 0; }

/* ---------- KPIs ---------- */
/* Los cuatro en fila: en esta cabecera no necesitan el ancho de ms-grid--kpi. */
.ms-orgs__kpis[b-3vv031dq6c] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ms-orgs__kpis[b-3vv031dq6c]  .ms-kpi { min-width: 0; }

/* Esqueletos de carga, como en Usuarios. */
.ms-kpi-skel[b-3vv031dq6c] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.ms-kpi-skel__lines[b-3vv031dq6c] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

/* ---------- Conmutador tabla / árbol ---------- */
.ms-card__header-actions[b-3vv031dq6c] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ms-tabs--sm .ms-tabs__item[b-3vv031dq6c] {
    height: 30px;
    padding: 0 11px;
    font-size: 12.5px;
}

.ms-orgs__count[b-3vv031dq6c] {
    flex: none;
    margin-left: auto;
    white-space: nowrap;
}

/* ---------- Tabla ---------- */
.ms-orgs__tabla[b-3vv031dq6c]  .ms-cell-user {
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.ms-orgs__tabla[b-3vv031dq6c]  .ms-cell-user:hover .ms-cell-user__meta b { color: var(--ms-brand); }

.ms-orgs__enlace[b-3vv031dq6c] {
    color: var(--ms-text-2);
    text-decoration: none;
}

.ms-orgs__enlace:hover[b-3vv031dq6c] { color: var(--ms-brand); text-decoration: underline; }

/* ---------- Árbol ----------
   La sangría la marca --nivel desde el marcado, así que la lista se pinta
   plana y no hace falta recursión en el componente. */
.ms-arbol[b-3vv031dq6c] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ms-arbol__fila[b-3vv031dq6c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 8px 12px 8px calc(6px + var(--nivel, 0) * 32px);
    border-radius: var(--ms-radius-md);
    transition: background var(--ms-dur) var(--ms-ease), opacity var(--ms-dur) var(--ms-ease);
}

.ms-arbol__fila:hover[b-3vv031dq6c] { background: var(--ms-surface-2); }

/* Padres que sólo están para dar contexto a un resultado del filtro. */
.ms-arbol__fila.is-contexto[b-3vv031dq6c] { opacity: .55; }
.ms-arbol__fila.is-contexto:hover[b-3vv031dq6c] { opacity: 1; }

.ms-arbol__expansor[b-3vv031dq6c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex: none;
    padding: 0;
    border: 0;
    border-radius: var(--ms-radius-xs);
    background: transparent;
    color: var(--ms-text-3);
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), color var(--ms-dur) var(--ms-ease);
}

.ms-arbol__expansor:hover[b-3vv031dq6c] { background: var(--ms-surface-3); color: var(--ms-text); }
.ms-arbol__expansor.is-empty[b-3vv031dq6c] { cursor: default; pointer-events: none; }

.ms-arbol__nodo[b-3vv031dq6c] {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    flex: 1 1 260px;
    margin-left: 6px;
    color: inherit;
    text-decoration: none;
}

.ms-arbol__meta[b-3vv031dq6c] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ms-arbol__meta b[b-3vv031dq6c] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ms-text);
}

.ms-arbol__meta span[b-3vv031dq6c] {
    font-size: 11.5px;
    color: var(--ms-text-3);
}

.ms-arbol__nodo:hover .ms-arbol__meta b[b-3vv031dq6c] { color: var(--ms-brand); }

.ms-arbol__cifras[b-3vv031dq6c] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ms-arbol__fila:hover .ms-row-actions[b-3vv031dq6c],
.ms-arbol__fila:focus-within .ms-row-actions[b-3vv031dq6c] { opacity: 1; }

/* ---------- Responsive ---------- */

/* Sin sitio al lado del título: los KPIs bajan debajo, aún en fila. */
@media (max-width: 1499.98px) {
    .ms-orgs__cabecera[b-3vv031dq6c] { grid-template-columns: minmax(0, 1fr); }
    .ms-orgs__acciones[b-3vv031dq6c] { order: -1; }
}

@media (max-width: 991.98px) {
    .ms-orgs__kpis[b-3vv031dq6c] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 479.98px) {
    .ms-orgs__kpis[b-3vv031dq6c] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
    .ms-orgs__count[b-3vv031dq6c] { margin-left: 0; }
}

@media (max-width: 575.98px) {
    .ms-arbol__fila[b-3vv031dq6c] { padding-left: calc(6px + var(--nivel, 0) * 16px); }
    .ms-arbol__cifras[b-3vv031dq6c] { padding-left: 26px; }
    .ms-arbol__acciones[b-3vv031dq6c] { opacity: 1; }
}
/* /Components/Pages/Organizations/OrgFavoritesManager.razor.rz.scp.css */
/* ============================================================================
   Favoritos — listado de sets y modal de edición (nombre, máximo de pruebas,
   buscador y lista ordenable de pruebas).
   ========================================================================== */

.ms-fav__set-acciones[b-k7gdekgv9l] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ms-fav__pruebas[b-k7gdekgv9l] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ms-fav__modal[b-k7gdekgv9l] {
    width: min(720px, 100%);
    max-width: 720px;
}
.ms-fav__modal .ms-modal__body[b-k7gdekgv9l] { max-height: 70vh; }

.ms-fav__lista[b-k7gdekgv9l] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

/* --- Panel de catálogo (buscador + lista completa) ----------------------- */
.ms-fav__catalogo[b-k7gdekgv9l] { display: flex; flex-direction: column; gap: 6px; }
.ms-fav__catalogo-lista[b-k7gdekgv9l] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
}
.ms-fav__catalogo-item[b-k7gdekgv9l] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px 6px 12px;
    border-bottom: 1px solid var(--ms-border-soft);
}
.ms-fav__catalogo-item:last-child[b-k7gdekgv9l] { border-bottom: 0; }
.ms-fav__catalogo-item:hover[b-k7gdekgv9l] { background: var(--ms-surface-2); }
.ms-fav__item[b-k7gdekgv9l] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 2px;
    border-bottom: 1px solid var(--ms-border-soft);
}
.ms-fav__item:last-child[b-k7gdekgv9l] { border-bottom: 0; }

.ms-fav__pos[b-k7gdekgv9l] {
    flex: none;
    width: 56px;
    padding-left: 6px;
    padding-right: 6px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.ms-fav__texto[b-k7gdekgv9l] { min-width: 0; flex: 1; }
.ms-fav__texto b[b-k7gdekgv9l] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-fav__texto > span[b-k7gdekgv9l] {
    display: block;
    font-size: 11.5px;
    color: var(--ms-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-fav__acciones[b-k7gdekgv9l] {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
/* /Components/Pages/Pdf/VisorPdf.razor.rz.scp.css */
/* ============================================================================
   VisorPdf.razor.css — vista previa de un informe.
   ----------------------------------------------------------------------------
   Reutiliza .ms-modal del sistema. Aqui solo lo propio de un visor: el modal
   normal es estrecho y de alto libre, y un PDF necesita lo contrario.
   ========================================================================== */

.ms-visor[b-lslpttf0bc] {
    max-width: 1100px;
    width: 100%;
    height: 86vh;
    display: flex;
    flex-direction: column;
}

.ms-visor__cuerpo[b-lslpttf0bc] {
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px 16px;
    background: var(--ms-surface-3);
}

/* El PDF se pinta sobre blanco: el visor del navegador no se adapta al tema. */
.ms-visor__marco[b-lslpttf0bc] {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: var(--ms-radius-md);
    background: #fff;
    box-shadow: var(--ms-shadow-md);
}

/* Giro del icono mientras se genera. */
.ms-spin[b-lslpttf0bc] {
    animation: ms-visor-giro-b-lslpttf0bc 1s linear infinite;
}

@keyframes ms-visor-giro-b-lslpttf0bc {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .ms-spin[b-lslpttf0bc] { animation: none; }
}

@media (max-width: 767.98px) {
    .ms-visor[b-lslpttf0bc] {
        height: 100dvh;
    }

    .ms-visor__cuerpo[b-lslpttf0bc] {
        padding: 8px;
    }
}
/* /Components/Pages/PersonEditor.razor.rz.scp.css */
/* ============================================================================
   PersonEditor — la "hoja" que sustituye al listado de personas.

   Aislado a propósito (CSS isolation de Blazor): estas reglas sólo afectan a
   este componente. Aunque los nombres de clase coincidan con los del editor
   de usuarios, cada componente lleva su propio atributo de ámbito, así que no
   hay ninguna interferencia entre pantallas.

   Se apila en la misma celda de rejilla que el listado (ver
   .ms-personas__pila en PersonsManager.razor.css) dentro de .ms-page. La
   barra lateral y la superior siguen visibles y operativas; lo que se
   sustituye es el listado.

   El fondo es opaco, no translúcido: detrás hay una tabla densa que se leería
   a través. El listado no se desmonta, sólo queda inerte, así que al volver
   conserva búsqueda, filtros y scroll.
   ========================================================================== */

.ms-sheet[b-jqjp13teej] {
    grid-area: 1 / 1;
    z-index: 2;
    background: var(--ms-bg);
    animation: ms-sheet-in-b-jqjp13teej .18s var(--ms-ease);
    scroll-margin-top: calc(var(--ms-topbar-h) + 16px);
}

@keyframes ms-sheet-in-b-jqjp13teej {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ms-sheet[b-jqjp13teej] { animation: none; }
}

/* --- La hoja como modal ----------------------------------------------------
   Llamada desde otra pantalla (los inscritos de una prueba, por ejemplo) no hay
   listado al que sustituir: la hoja se abre encima. Sólo cambia el envoltorio.

   Sin modal, la capa no puede existir para el diseño: la hoja se coloca en la
   rejilla de .ms-personas__pila y un div por medio la sacaría de ella. Eso es
   justo lo que resuelve display:contents. */
.ms-sheet__capa[b-jqjp13teej] { display: contents; }

/* Menos aire arriba que el .ms-overlay genérico (11vh): ahí no cabe un
   formulario de dos columnas.

   Y un punto más de z-index (1080 → 1081): la hoja se abre desde otro modal —el
   selector de inscritos—, que se queda debajo con lo que hubiera marcado. */
.ms-overlay--hoja[b-jqjp13teej] { padding: 4vh 16px 16px; z-index: 1081; }

.ms-sheet--modal[b-jqjp13teej] {
    grid-area: auto;
    align-self: flex-start;
    /* Columna flexible, como .ms-modal en el móvil: la barra de acciones se queda
       fija arriba y el único que rueda es el cuerpo. */
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1120px;
    max-height: 92vh;
    padding: 16px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-xl);
    box-shadow: var(--ms-shadow-lg);
    scroll-margin-top: 0;
}

/* EditForm mete un <form> entre la hoja y sus dos bloques, así que la columna
   flexible tiene que continuar ahí dentro: si no, barra y cuerpo no son
   elementos flexibles de la hoja y el cuerpo no llega a hacer scroll. */
.ms-sheet--modal[b-jqjp13teej]  form { flex: 1 1 auto; min-height: 0; }

/* Aquí el scroll no es el de la página: la barra deja de colgar de la barra
   superior de la aplicación y pasa a ser la cabecera del modal. */
.ms-sheet--modal .ms-sheet__bar[b-jqjp13teej] { position: static; flex: none; }

/* min-height: 0 es imprescindible: sin él, un elemento flexible no baja de la
   altura de su contenido y no llega a hacer scroll. */
.ms-sheet--modal .ms-sheet__inner[b-jqjp13teej] { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

/* Igual que el .ms-modal genérico: en el móvil deja de ser un cuadro centrado. */
@media (max-width: 575.98px) {
    .ms-overlay--hoja[b-jqjp13teej] { padding: 0; }

    .ms-sheet--modal[b-jqjp13teej] {
        max-width: none;
        height: 100dvh;
        max-height: 100dvh;
        border: 0;
        border-radius: 0;
    }
}

/* El <form> lo pinta EditForm, así que no lleva el atributo de ámbito de este
   componente y hay que alcanzarlo con ::deep. */
.ms-sheet[b-jqjp13teej]  form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* --- Barra de acciones -----------------------------------------------------
   Pegajosa bajo la barra superior de la aplicación (sticky a 0 / z-index 1020):
   «Volver» y «Guardar» siguen a mano por largo que sea el formulario. */
.ms-sheet__bar[b-jqjp13teej] {
    position: sticky;
    top: var(--ms-topbar-h);
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-lg);
    box-shadow: var(--ms-shadow-sm);
}

.ms-sheet__ident[b-jqjp13teej] {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.ms-sheet__ident-text[b-jqjp13teej] { min-width: 0; }

.ms-sheet__ident-text h1[b-jqjp13teej] {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ms-text);
    line-height: 1.3;
}

.ms-sheet__bar-end[b-jqjp13teej] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex: none;
}

/* --- Cuerpo ---------------------------------------------------------------
   Sin scroll propio: la hoja va en el flujo de la página, así que scrollea la
   página entera. */
.ms-sheet__inner[b-jqjp13teej] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 8px;
}

/* ============================================================================
   Columnas del formulario

   Por defecto las celdas de una rejilla se estiran hasta igualar la altura de
   la fila, así que la tarjeta más corta quedaba con un hueco muerto debajo del
   último campo. Con align-items:start cada tarjeta mide lo que mide su
   contenido.
   ========================================================================== */

.ms-editor__cols[b-jqjp13teej] { align-items: start; }

/* ============================================================================
   Rejilla proporcional de 12 columnas

   .ms-form-row (global) reparte siempre en mitades iguales, así que un código
   de tres letras ocupaba lo mismo que unos apellidos. Aquí el ancho se asigna
   por columnas: el tamaño del campo anticipa la longitud del dato, que es lo
   que permite escanear la fila de un vistazo y teclear sin buscar.
   ========================================================================== */

.ms-fila[b-jqjp13teej] {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

/* La escala va completa del 1 al 12 a propósito: usar en el marcado una que no
   estuviera definida hacía que el campo cayera a una sola columna sin avisar. */
.ms-c1[b-jqjp13teej]  { grid-column: span 1; }
.ms-c2[b-jqjp13teej]  { grid-column: span 2; }
.ms-c3[b-jqjp13teej]  { grid-column: span 3; }
.ms-c4[b-jqjp13teej]  { grid-column: span 4; }
.ms-c5[b-jqjp13teej]  { grid-column: span 5; }
.ms-c6[b-jqjp13teej]  { grid-column: span 6; }
.ms-c7[b-jqjp13teej]  { grid-column: span 7; }
.ms-c8[b-jqjp13teej]  { grid-column: span 8; }
.ms-c9[b-jqjp13teej]  { grid-column: span 9; }
.ms-c10[b-jqjp13teej] { grid-column: span 10; }
.ms-c11[b-jqjp13teej] { grid-column: span 11; }
.ms-c12[b-jqjp13teej] { grid-column: span 12; }

/* Densidad: el editor es dos columnas de tarjetas, no una ficha suelta.
   Se recorta el aire vertical sin bajar de los 38px de alto de control ni
   comprometer la diana táctil. */
.ms-field[b-jqjp13teej] { gap: 4px; }
.ms-stack[b-jqjp13teej] { gap: 12px; }

/* Los códigos cortos (ESP, EUR, dorsal) se leen mejor centrados y en versalita:
   el ojo los compara en vertical entre registros.

   Va con ::deep porque unos son <input> nativos de este componente y otros los
   pinta InputText: sin él, la regla sólo alcanzaría a los primeros. */
.ms-fila[b-jqjp13teej]  .ms-input--codigo {
    text-align: center;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Nota discreta junto a la etiqueta (edad y banda calculadas), para no gastar
   una línea de .ms-hint bajo el campo. */
.ms-label__nota[b-jqjp13teej] {
    margin-inline-start: 6px;
    font-weight: 500;
    font-size: 11px;
    color: var(--ms-text-3);
}

/* ============================================================================
   Tarjeta de licencia

   Se destaca en apagado/encendido para que se vea de un golpe si al guardar se
   va a crear algo más además de la persona: es una escritura en otra tabla y
   no debería pasar desapercibida.
   ========================================================================== */

.ms-licencia[b-jqjp13teej] {
    border-color: var(--ms-border);
    transition: border-color var(--ms-dur) var(--ms-ease);
}

.ms-licencia.is-on[b-jqjp13teej] { border-color: var(--ms-brand-border); }

.ms-licencia__cab[b-jqjp13teej] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

/* El interruptor vive en la cabecera: no debe estirarse como una fila normal. */
.ms-licencia__sw[b-jqjp13teej] {
    flex: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

/* El cuerpo es una sola nota, pero se deja apilado con separación por si más
   adelante convive con otro aviso (p. ej. el de «no hay estados de licencia»). */
.ms-licencia .ms-card__body[b-jqjp13teej] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Campo con un botón pegado a la derecha (identificador + regenerar). */
.ms-campo-adjunto[b-jqjp13teej] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ms-campo-adjunto[b-jqjp13teej]  .ms-input {
    flex: 1;
    min-width: 0;
}

/* En estrecho el reparto proporcional deja de tener sentido: todo a una
   columna, que es como se rellena en móvil. */
@media (max-width: 767.98px) {
    .ms-fila > *[b-jqjp13teej] { grid-column: span 12; }
}

/* Tableta: se conservan las mitades, pero no los tercios ni los quintos. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .ms-fila > .ms-c1[b-jqjp13teej],
    .ms-fila > .ms-c2[b-jqjp13teej],
    .ms-fila > .ms-c3[b-jqjp13teej],
    .ms-fila > .ms-c4[b-jqjp13teej]  { grid-column: span 4; }
    .ms-fila > .ms-c5[b-jqjp13teej],
    .ms-fila > .ms-c6[b-jqjp13teej],
    .ms-fila > .ms-c7[b-jqjp13teej]  { grid-column: span 6; }
    .ms-fila > .ms-c8[b-jqjp13teej],
    .ms-fila > .ms-c9[b-jqjp13teej],
    .ms-fila > .ms-c10[b-jqjp13teej],
    .ms-fila > .ms-c11[b-jqjp13teej] { grid-column: span 12; }
}

/* ============================================================================
   Pertenencia en una fila: país, federación, club y escuela a partes iguales
   y el dorsal estrecho al final. Tableta: de dos en dos. Móvil: uno por fila.
   ========================================================================== */
.ms-fila.ms-fila--pertenencia[b-jqjp13teej] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) 96px;
}

/* .ms-card lleva overflow: hidden. En una tarjeta de una sola fila eso corta la
   lista de sugerencias de los buscadores justo debajo del campo. */
.ms-card.ms-card--desplegable[b-jqjp13teej] {
    overflow: visible;
    position: relative;
    z-index: 2;
}

.ms-fila.ms-fila--pertenencia > *[b-jqjp13teej] { grid-column: auto; }

@media (max-width: 1199.98px) {
    .ms-fila.ms-fila--pertenencia[b-jqjp13teej] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .ms-fila.ms-fila--pertenencia[b-jqjp13teej] { grid-template-columns: minmax(0, 1fr); }
    .ms-fila.ms-fila--pertenencia > *[b-jqjp13teej] { grid-column: auto; }
}

/* ============================================================================
   Licencias de la persona (sólo lectura, en edición)
   ========================================================================== */
.ms-licencias-tabla td[b-jqjp13teej],
.ms-licencias-tabla th[b-jqjp13teej] { white-space: nowrap; }

.ms-licencias-tabla td[b-jqjp13teej] { font-size: 12.5px; }

/* El género lo pinta OptionPicker, que ya trae sus propios estilos y el estado
   «sin especificar»: aquí no hace falta nada. */

/* ============================================================================
   Fecha de nacimiento

   El <input type="date"> lo pinta InputDate (componente hijo), así que su
   marcado no lleva el atributo de ámbito de este componente: hay que
   alcanzarlo con ::deep.

   El icono del calendario y el desplegable los dibuja el navegador, y su color
   lo decide "color-scheme". Fijándolo en dark sobre el propio campo, el icono
   sale blanco y el calendario emergente sale oscuro SIEMPRE, sin depender del
   tema de la página ni del sistema.

   Nada de filter: invert() aquí. Con color-scheme dark el icono ya es blanco,
   así que invertirlo lo devolvía a negro.
   ========================================================================== */

.ms-campo-fecha[b-jqjp13teej]  input[type="date"] {
    cursor: pointer;
    color-scheme: dark;
}

.ms-campo-fecha[b-jqjp13teej]  input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: .75;
    cursor: pointer;
    padding: 3px;
    margin-inline-start: 4px;
    border-radius: var(--ms-radius-xs);
    transition: opacity var(--ms-dur) var(--ms-ease),
                background var(--ms-dur) var(--ms-ease);
}

.ms-campo-fecha[b-jqjp13teej]  input[type="date"]:hover::-webkit-calendar-picker-indicator {
    opacity: 1;
}

.ms-campo-fecha[b-jqjp13teej]  input[type="date"]::-webkit-calendar-picker-indicator:hover {
    background: var(--ms-surface-3);
}


/* --- Estrecho ------------------------------------------------------------- */
@media (max-width: 767.98px) {
    .ms-sheet__bar[b-jqjp13teej] { padding: 10px 12px; gap: 8px; flex-wrap: wrap; }
    .ms-sheet__ident[b-jqjp13teej] { order: 3; width: 100%; }
    .ms-sheet__bar-end[b-jqjp13teej] { gap: 6px; }

    /* En móvil el botón «Volver» ya es la salida; el texto de Cancelar sobra. */
    .ms-sheet__bar-end > .ms-btn--ghost[b-jqjp13teej] { display: none; }
}
/* /Components/Pages/PersonsManager.razor.rz.scp.css */
/* ============================================================================
   PersonsManager — listado de personas.

   Aislado a propósito (CSS isolation de Blazor): estas reglas sólo afectan a
   este componente, así que no tocan ninguna otra pantalla de la aplicación.
   Mismo patrón que el listado de usuarios, pero con su propio ámbito.

   El listado y la hoja de alta/edición se apilan en la MISMA celda de rejilla
   (ver .ms-sheet en PersonEditor.razor.css): así la hoja sustituye
   visualmente al listado sin desmontarlo, y al volver se conservan búsqueda,
   filtros y posición de scroll.
   ========================================================================== */

.ms-personas__pila[b-00etkur98q] {
    display: grid;
    flex: 1;
}

.ms-personas__base[b-00etkur98q] {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-self: start;
}

.ms-personas__kpis[b-00etkur98q] { gap: 12px; }

.ms-personas__count[b-00etkur98q] {
    flex: none;
    white-space: nowrap;
}

/* La tabla la pinta este componente, pero se usa ::deep por coherencia con el
   resto del proyecto y para no depender del ámbito en cada descendiente. */
.ms-personas__tabla[b-00etkur98q]  thead th {
    height: 44px;
    padding-top: 0;
    padding-bottom: 0;
}

.ms-personas__tabla[b-00etkur98q]  tbody td {
    height: auto;
    padding-top: 13px;
    padding-bottom: 13px;
}

.ms-personas__tabla[b-00etkur98q]  .ms-cell-user { gap: 12px; }
.ms-personas__tabla[b-00etkur98q]  .ms-cell-user__meta { line-height: 1.45; }

.ms-personas__tabla[b-00etkur98q]  .ms-cell-user__meta span {
    font-family: var(--ms-font-mono);
    font-size: 10.5px;
}

.ms-personas__tabla[b-00etkur98q]  td.ms-table__mono { font-size: 12px; }

/* --- Esqueleto de las tarjetas KPI mientras carga ------------------------- */
.ms-kpi-skel[b-00etkur98q] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.ms-kpi-skel__lines[b-00etkur98q] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

/* --- Sólo móvil (≤ 767px): escritorio intacto -------------------------------- */
@media (max-width: 767.98px) {
    .ms-personas__base[b-00etkur98q] { gap: 16px; }

    /* 0. Cabecera centrada: migas, eyebrow, título y subtítulo alineados
       al centro; el botón «Añadir persona» ya ocupa todo el ancho. */
    .ms-personas__base[b-00etkur98q]  .ms-page-header { text-align: center; }
    .ms-personas__base[b-00etkur98q]  .ms-page-header__text { flex: 1 1 100%; }
    .ms-personas__base[b-00etkur98q]  .ms-breadcrumb { justify-content: center; }

    /* 1. KPIs: 2 columnas en móvil en vez de 4 tarjetas apiladas.
       El global (.ms-grid--kpi) colapsa a 1 columna y alarga mucho la página. */
    .ms-personas__kpis.ms-grid--kpi[b-00etkur98q] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .ms-personas__kpis[b-00etkur98q]  .ms-kpi__foot {
        font-size: 11px;
        overflow-wrap: anywhere;
    }

    .ms-kpi-skel[b-00etkur98q] { padding: 12px; }
    .ms-kpi-skel__lines[b-00etkur98q]  .ms-skeleton { max-width: 100%; }

    /* 2. Toolbar: buscador a fila completa y filtros al 50/50.
       Evita que los selects (min-width global 140px) fuercen desbordes. */
    .ms-toolbar__search[b-00etkur98q] {
        flex: 1 1 100%;
        min-width: 0;
        max-width: none;
    }

    .ms-toolbar .ms-select[b-00etkur98q] {
        flex: 1 1 0;
        min-width: 0;
        width: 100%;
        height: 38px;
        font-size: 16px; /* evita el auto-zoom de iOS al enfocar */
    }

    .ms-toolbar .ms-input[b-00etkur98q] {
        height: 38px;
        font-size: 16px; /* evita el auto-zoom de iOS al enfocar */
    }

    /* Divisor vertical sin sentido al apilar filas */
    .ms-toolbar .ms-divider-v[b-00etkur98q] { display: none; }

    /* «Limpiar» a fila propia y a ancho completo para tacto */
    .ms-toolbar .ms-btn[b-00etkur98q] {
        flex: 1 1 100%;
        justify-content: center;
        min-height: 34px;
    }

    /* Contador a su propia fila, sin nowrap que empuje fuera */
    .ms-personas__count[b-00etkur98q] {
        flex: 1 1 100%;
        margin-left: 0;
        white-space: normal;
        text-align: left;
    }

    /* 3. Tarjeta compacta en rejilla 2×2: la celda «Persona» es la cabecera
       (ancho completo) y Género/País/Club/Categoría forman una rejilla de
       2 columnas con etiqueta arriba y valor debajo, en vez de 4 filas
       apiladas de etiqueta-izquierda/valor-derecha. */
    .ms-personas__tabla[b-00etkur98q]  tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 14px;
    }

    .ms-personas__tabla[b-00etkur98q]  tbody td:first-child::before { display: none; }

    .ms-personas__tabla[b-00etkur98q]  tbody td:first-child {
        grid-column: 1 / -1;
        justify-content: flex-start;
        padding-bottom: 8px;
    }

    .ms-personas__tabla[b-00etkur98q]  .ms-cell-user {
        flex: 1;
        min-width: 0;
        justify-content: flex-start;
    }

    .ms-personas__tabla[b-00etkur98q]  .ms-cell-user__meta {
        flex: 1;
        min-width: 0;
        text-align: left;
    }

    .ms-personas__tabla[b-00etkur98q]  .ms-cell-user__meta b,
    .ms-personas__tabla[b-00etkur98q]  .ms-cell-user__meta span {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Resto de celdas: separa etiqueta y valor, y permite cortar
       cadenas largas sin espacios (identificadores, clubes largos). */
    .ms-personas__tabla[b-00etkur98q]  tbody td {
        gap: 12px;
        overflow-wrap: anywhere;
    }

    /* Celdas de detalle en modo columna: etiqueta arriba, valor debajo,
       alineados a la izquierda dentro de su mitad de la rejilla. */
    .ms-personas__tabla[b-00etkur98q]  tbody td:not(:first-child):not(.ms-table__actions) {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 2px;
        text-align: left;
        padding-top: 6px;
        padding-bottom: 6px;
    }

    .ms-personas__tabla[b-00etkur98q]  .ms-badge {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* 4. Acciones: sin ::before vacío (esta td no tiene data-label),
       a ancho completo con separador superior y diana táctil suficiente. */
    .ms-personas__tabla[b-00etkur98q]  .ms-table__actions::before { display: none; }

    .ms-personas__tabla[b-00etkur98q]  .ms-table__actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
        margin-top: 4px;
        padding-top: 10px;
        border-top: 1px solid var(--ms-border-soft);
    }

    .ms-personas__tabla[b-00etkur98q]  .ms-row-actions { gap: 8px; }

    .ms-personas__tabla[b-00etkur98q]  .ms-icon-btn--sm {
        width: 36px;
        height: 36px;
    }

    /* Esqueletos de tabla acotados al ancho disponible */
    .ms-personas__tabla[b-00etkur98q]  .ms-skeleton { max-width: 100%; }

    /* Pie de tarjeta: el resumen puede ser largo («X con licencia · Y países») */
    .ms-card__footer[b-00etkur98q] { font-size: 12px; }
    .ms-card__footer[b-00etkur98q]  .ms-skeleton { max-width: 100%; }
}

/* Pantallas muy estrechas (≤ 400px): compacta más los KPIs para que
   las 2 columnas sigan cabiendo sin romper palabras. */
@media (max-width: 399.98px) {
    .ms-personas__kpis[b-00etkur98q]  .ms-kpi--compact {
        padding: 10px 12px;
        column-gap: 10px;
    }

    .ms-personas__kpis[b-00etkur98q]  .ms-kpi--compact .ms-kpi__icon {
        width: 30px;
        height: 30px;
    }

    .ms-personas__kpis[b-00etkur98q]  .ms-kpi--compact .ms-kpi__value b { font-size: 19px; }
    .ms-personas__kpis[b-00etkur98q]  .ms-kpi__label { font-size: 9.5px; }
    .ms-personas__kpis[b-00etkur98q]  .ms-kpi__foot { font-size: 10.5px; }
}
/* /Components/Pages/PhaseDrawEditor.razor.rz.scp.css */
/* ============================================================================
   Sorteo de una fase: inscritos sin calle a la izquierda y, a la derecha, una
   tarjeta por serie con sus calles. Se arrastra de la lista a una calle, entre
   calles (intercambia) o de una calle a la lista (la deja libre).
   ========================================================================== */

.ms-sorteo[b-7g3ntnsh9b] { width: calc(100vw - 32px); max-width: 1180px; }

.ms-sorteo__cab-acciones[b-7g3ntnsh9b] { display: flex; align-items: center; gap: 4px; }
.ms-sorteo__cab-acciones .is-active[b-7g3ntnsh9b] { color: var(--ms-brand); background: var(--ms-brand-soft); }

/* Pantalla completa: el modal ocupa toda la ventana y las series ganan columnas. */
.ms-overlay.is-open .ms-sorteo--completa[b-7g3ntnsh9b] {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    width: auto;
    max-width: none;
    border: 0;
    border-radius: 0;
    transform: none;
}
.ms-sorteo--completa .ms-sorteo__body[b-7g3ntnsh9b] { flex: 1 1 auto; height: auto; max-height: none; min-height: 0; }

.ms-sorteo__barra[b-7g3ntnsh9b] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 0 16px 12px;
    border-bottom: 1px solid var(--ms-border-soft);
}

.ms-sorteo__calles[b-7g3ntnsh9b] { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--ms-text-2); }
.ms-sorteo__calles .ms-select[b-7g3ntnsh9b] { width: auto; min-width: 72px; height: 32px; }

.ms-sorteo__hueco[b-7g3ntnsh9b] { flex: 1; }

.ms-sorteo__body[b-7g3ntnsh9b] {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: 16px;
    height: min(68vh, 720px);
    padding: 16px;
    overflow: hidden;
}

/* --- Inscritos sin calle ------------------------------------------------------ */
.ms-sorteo__inscritos[b-7g3ntnsh9b] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
    padding: 12px;
    border: 1px solid var(--ms-border-soft);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface-2);
}
.ms-sorteo__inscritos.is-destino[b-7g3ntnsh9b] { outline: 2px dashed var(--ms-brand); outline-offset: -2px; }

.ms-sorteo__inscritos-cab[b-7g3ntnsh9b] { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 13px; }
.ms-sorteo__inscritos-cab span[b-7g3ntnsh9b] { font-size: 11.5px; color: var(--ms-text-3); }

.ms-sorteo__lista[b-7g3ntnsh9b] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}

/* Atleta: en la lista y dentro de una calle comparten aspecto. */
.ms-sorteo__atleta[b-7g3ntnsh9b],
.ms-sorteo__ocupante[b-7g3ntnsh9b] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 1px;
    width: 100%;
    min-width: 0;
    padding: 6px 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
    color: inherit;
    text-align: left;
    cursor: grab;
    transition: border-color var(--ms-dur) var(--ms-ease), background var(--ms-dur) var(--ms-ease);
}
/* Ficha: nombre y dorsal; debajo, club y marcas PB / SB. */
.ms-sorteo__nombre[b-7g3ntnsh9b],
.ms-sorteo__club[b-7g3ntnsh9b],
.ms-sorteo__marcas[b-7g3ntnsh9b] { display: flex; align-items: baseline; gap: 8px; width: 100%; min-width: 0; }

.ms-sorteo__nombre b[b-7g3ntnsh9b],
.ms-sorteo__club[b-7g3ntnsh9b] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ms-sorteo__nombre b[b-7g3ntnsh9b] { flex: 1 1 auto; font-size: 12.5px; font-weight: 600; color: var(--ms-text); }
.ms-sorteo__nombre em[b-7g3ntnsh9b] {
    flex: none;
    font-size: 11px;
    font-style: normal;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text-3);
}
.ms-sorteo__nombre em[b-7g3ntnsh9b]::before { content: "#"; opacity: .6; }

.ms-sorteo__club[b-7g3ntnsh9b] { display: block; font-size: 11px; color: var(--ms-text-3); }

.ms-sorteo__marcas[b-7g3ntnsh9b] { gap: 12px; font-size: 11px; font-variant-numeric: tabular-nums; color: var(--ms-text-2); }
.ms-sorteo__marcas > span[b-7g3ntnsh9b] { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.ms-sorteo__marcas abbr[b-7g3ntnsh9b] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-decoration: none;
    color: var(--ms-text-4);
}

.ms-sorteo__atleta:hover[b-7g3ntnsh9b],
.ms-sorteo__ocupante:hover[b-7g3ntnsh9b] { border-color: var(--ms-brand); }
.ms-sorteo__atleta:focus-visible[b-7g3ntnsh9b],
.ms-sorteo__ocupante:focus-visible[b-7g3ntnsh9b] { outline: 2px solid var(--ms-brand); outline-offset: 1px; }

.ms-sorteo__atleta.is-seleccionada[b-7g3ntnsh9b],
.ms-sorteo__ocupante.is-seleccionada[b-7g3ntnsh9b] {
    border-color: var(--ms-brand);
    background: var(--ms-brand-soft);
    box-shadow: inset 3px 0 0 var(--ms-brand);
}

/* --- Series y calles ------------------------------------------------------------ */
.ms-sorteo__series[b-7g3ntnsh9b] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    align-content: start;
    min-height: 0;
    overflow-y: auto;
}

.ms-sorteo__serie[b-7g3ntnsh9b] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface);
}

.ms-sorteo__serie-cab[b-7g3ntnsh9b] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: var(--ms-brand);
    color: var(--ms-on-brand);
    font-size: 13px;
}
.ms-sorteo__serie-cab span[b-7g3ntnsh9b] { margin-left: auto; font-size: 11.5px; font-variant-numeric: tabular-nums; opacity: .85; }
.ms-sorteo__quitar-serie[b-7g3ntnsh9b] { width: 22px; height: 22px; margin: -3px -6px -3px 0; color: inherit; }
.ms-sorteo__quitar-serie:hover[b-7g3ntnsh9b] { background: rgb(255 255 255 / .18); color: inherit; }

.ms-sorteo__calles-lista[b-7g3ntnsh9b] { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 6px 6px 12px; list-style: none; flex: 1; min-height: 0; overflow-y: auto; }

.ms-sorteo__calle[b-7g3ntnsh9b] { display: flex; align-items: stretch; gap: 6px; border-radius: var(--ms-radius-xs); }
.ms-sorteo__calle.is-destino[b-7g3ntnsh9b] { outline: 2px dashed var(--ms-brand); outline-offset: 1px; }

.ms-sorteo__num[b-7g3ntnsh9b] {
    flex: none;
    display: grid;
    place-items: center;
    width: 30px;
    border-radius: var(--ms-radius-xs);
    background: var(--ms-surface-3);
    font-size: 12.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ms-sorteo__ocupante[b-7g3ntnsh9b] { flex: 1; min-height: 38px; }
.ms-sorteo__calle.is-libre .ms-sorteo__ocupante[b-7g3ntnsh9b] { border-style: dashed; background: transparent; cursor: pointer; }
.ms-sorteo__libre[b-7g3ntnsh9b] { font-size: 11.5px; color: var(--ms-text-3); }

.ms-sorteo__quitar[b-7g3ntnsh9b] { align-self: center; }
.ms-sorteo__quitar:hover[b-7g3ntnsh9b] { color: var(--ms-danger); background: var(--ms-danger-bg); }

.ms-sorteo__vacio[b-7g3ntnsh9b],
.ms-sorteo__aviso[b-7g3ntnsh9b],
.ms-sorteo__estado[b-7g3ntnsh9b] { font-size: 12px; color: var(--ms-text-3); }
.ms-sorteo__aviso[b-7g3ntnsh9b] { color: var(--ms-warning); }

.ms-sorteo__footer[b-7g3ntnsh9b] { flex-wrap: wrap; gap: 8px; }

@media (max-width: 767.98px) {
    .ms-sorteo__body[b-7g3ntnsh9b] { grid-template-columns: minmax(0, 1fr); height: auto; max-height: 70vh; overflow-y: auto; }
    .ms-sorteo__inscritos[b-7g3ntnsh9b] { max-height: 280px; }
}
/* /Components/Pages/Rankings/EventRanking.razor.rz.scp.css */
/* EventRanking — clasificación de una prueba: cabecera con filtros y tabla de puestos. */

.ms-rk[b-lfzc4tg3sm] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* ---------- Cabecera ---------- */
.ms-rk__cab[b-lfzc4tg3sm] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 14px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ms-border-soft);
}

.ms-rk__ident[b-lfzc4tg3sm] { min-width: 0; }

.ms-rk__eyebrow[b-lfzc4tg3sm] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 3px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-rk__ident h2[b-lfzc4tg3sm] {
    margin: 0;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.2;
    color: var(--ms-text);
}

.ms-rk__acciones[b-lfzc4tg3sm] {
    display: flex;
    align-items: center;
    gap: 6px;
    justify-self: end;
}

/* ---------- Filtros ---------- */
.ms-rk__filtros[b-lfzc4tg3sm],
.ms-rk__barra[b-lfzc4tg3sm] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ms-rk__grupo[b-lfzc4tg3sm] {
    display: inline-flex;
    gap: 4px;
    flex-wrap: wrap;
}

/* Las categorías pueden ser muchas (M35, M40, M45…): ceden el sitio y hacen su propio scroll. */
.ms-rk__grupo--cats[b-lfzc4tg3sm] {
    flex: 1 1 200px;
    min-width: 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 2px;
}

.ms-rk__limpiar[b-lfzc4tg3sm] {
    width: 26px;
    padding: 0;
    justify-content: center;
}

.ms-rk__buscador[b-lfzc4tg3sm] {
    flex: 1;
    min-width: 200px;
    max-width: 340px;
}

.ms-rk__club[b-lfzc4tg3sm] {
    width: auto;
    min-width: 160px;
    max-width: 220px;
    height: 34px;
}

.ms-rk__resumen[b-lfzc4tg3sm] {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-left: auto;
    font-size: 12px;
    color: var(--ms-text-3);
    white-space: nowrap;
}

.ms-rk__resumen b[b-lfzc4tg3sm] {
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text);
}

/* ---------- Tabla ---------- */
.ms-rk__tabla[b-lfzc4tg3sm] { font-size: 13px; }

.ms-rk__c-pos[b-lfzc4tg3sm] { width: 52px; text-align: center; }
.ms-rk__c-bib[b-lfzc4tg3sm] { width: 64px; font-variant-numeric: tabular-nums; }
.ms-rk__c-cat[b-lfzc4tg3sm] { width: 90px; }
.ms-rk__c-marca[b-lfzc4tg3sm] { width: 110px; }
.ms-rk__c-corto[b-lfzc4tg3sm] { width: 74px; }
.ms-rk__c-fase[b-lfzc4tg3sm] { width: 130px; }

.ms-rk__pos[b-lfzc4tg3sm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 24px;
    padding: 0 6px;
    border-radius: var(--ms-radius-xs);
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text);
}

/* Podio: los tres primeros se reconocen de un vistazo. */
.ms-rk__pos--oro[b-lfzc4tg3sm] { background: #F6C445; color: #4A3708; }
.ms-rk__pos--plata[b-lfzc4tg3sm] { background: #CFD6E0; color: #38414F; }
.ms-rk__pos--bronce[b-lfzc4tg3sm] { background: #DDA273; color: #4D2E13; }

.ms-rk__poscat[b-lfzc4tg3sm] {
    font-size: 12.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text-3);
}

.ms-rk__atleta[b-lfzc4tg3sm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.ms-rk__atleta b[b-lfzc4tg3sm] {
    font-weight: 700;
    color: var(--ms-text);
}

.ms-rk__fav[b-lfzc4tg3sm] { color: var(--ms-warning); }

.ms-rk__club-cel[b-lfzc4tg3sm] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.ms-rk__club-cel small[b-lfzc4tg3sm] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ms-text-4);
}

.ms-rk__club-cel > span[b-lfzc4tg3sm] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--ms-text-2);
}

.ms-rk__marca[b-lfzc4tg3sm] {
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text);
}

/* Quien no clasifica (DQ, DNS, DNF…) se queda en segundo plano. */
.ms-rk__tabla tr.is-fuera[b-lfzc4tg3sm] { color: var(--ms-text-3); }
.ms-rk__tabla tr.is-fuera .ms-rk__atleta b[b-lfzc4tg3sm] { font-weight: 600; color: var(--ms-text-3); }

@media (max-width: 767.98px) {
    .ms-rk__cab[b-lfzc4tg3sm] { grid-template-columns: minmax(0, 1fr); }
    .ms-rk__acciones[b-lfzc4tg3sm] { justify-self: start; }
    .ms-rk__resumen[b-lfzc4tg3sm] { margin-left: 0; }
}
/* /Components/Pages/Rankings/RankingEventList.razor.rz.scp.css */
/* RankingEventList — pruebas del campeonato, compactas y con su propio scroll. */

.ms-rk-lista[b-c90oqh3e75] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.ms-rk-lista__cab[b-c90oqh3e75] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    border-bottom: 1px solid var(--ms-border-soft);
}

.ms-rk-lista__filtros[b-c90oqh3e75] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ms-rk-lista__grupo[b-c90oqh3e75] {
    display: inline-flex;
    gap: 4px;
}

.ms-rk-lista__limpiar[b-c90oqh3e75] {
    width: 26px;
    padding: 0;
    justify-content: center;
}

.ms-rk-lista__busqueda[b-c90oqh3e75] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ms-rk-lista__busqueda .ms-input-group[b-c90oqh3e75] {
    flex: 1;
    min-width: 0;
}

.ms-rk-lista__cuenta[b-c90oqh3e75] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ---------- Lista ---------- */
.ms-rk-lista__items[b-c90oqh3e75] {
    list-style: none;
    margin: 0;
    padding: 6px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.ms-rk-lista__fila[b-c90oqh3e75] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 6px 8px;
    border: 1px solid transparent;
    border-radius: var(--ms-radius);
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.ms-rk-lista__fila:hover[b-c90oqh3e75] { background: var(--ms-surface-2); }

.ms-rk-lista__fila:focus-visible[b-c90oqh3e75] {
    outline: 2px solid var(--ms-brand);
    outline-offset: -2px;
}

.ms-rk-lista__fila.is-active[b-c90oqh3e75] {
    background: var(--ms-brand-soft);
    border-color: var(--ms-brand-border);
}

.ms-rk-lista__fila--skel[b-c90oqh3e75] { cursor: default; }

.ms-rk-lista__meta[b-c90oqh3e75] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
}

.ms-rk-lista__meta b[b-c90oqh3e75] {
    font-size: 13px;
    font-weight: 700;
    color: var(--ms-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-rk-lista__meta > span[b-c90oqh3e75] {
    display: flex;
    gap: 6px;
    font-size: 11.5px;
    color: var(--ms-text-3);
    overflow: hidden;
    white-space: nowrap;
}

.ms-rk-lista__meta em[b-c90oqh3e75] {
    font-style: normal;
    font-weight: 600;
}

.ms-rk-lista__cuenta-badge[b-c90oqh3e75] {
    min-width: 30px;
    justify-content: center;
    font-variant-numeric: tabular-nums;
}
/* /Components/Pages/Rankings/RankingsPage.razor.rz.scp.css */
/* Rankings: campeonato arriba, lista de pruebas fija a la izquierda y clasificación a la derecha. */

.ms-rankings__selector[b-k9jgxoih10] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ms-text-3);
}

.ms-rankings__selector .ms-select[b-k9jgxoih10] {
    width: min(360px, 70vw);
    height: 34px;
}

.ms-rankings[b-k9jgxoih10] {
    display: grid;
    grid-template-columns: minmax(270px, 320px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

/* La lista acompaña al hacer scroll y tiene su propia barra. */
.ms-rankings__lista[b-k9jgxoih10] {
    position: sticky;
    top: calc(var(--ms-topbar-h) + 12px);
    height: calc(100vh - var(--ms-topbar-h) - 36px);
    min-height: 320px;
}

.ms-rankings__lista[b-k9jgxoih10]  .ms-rk-lista { height: 100%; }

.ms-rankings__panel[b-k9jgxoih10] { min-width: 0; }

.ms-rankings__vacio[b-k9jgxoih10] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 420px;
    text-align: center;
    color: var(--ms-text-2);
}

.ms-rankings__vacio img[b-k9jgxoih10] {
    width: 180px;
    max-width: 60%;
    opacity: .9;
}

.ms-rankings__vacio p[b-k9jgxoih10] { margin: 0; font-size: 14px; }

@media (max-width: 991.98px) {
    .ms-rankings[b-k9jgxoih10] { grid-template-columns: minmax(0, 1fr); }
    .ms-rankings__lista[b-k9jgxoih10] { position: static; height: 45vh; }
}
/* /Components/Pages/Test/TestDataEntry.razor.rz.scp.css */
/* TestDataEntry — prueba de entrada de resultados con las clases ms-* de la app. */

.ms-test[b-ywhx1synjx] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Anchos fijos para las columnas cortas: el nombre se queda con el resto. */
.ms-test__tabla th[b-ywhx1synjx],
.ms-test__tabla td[b-ywhx1synjx] {
    vertical-align: middle;
}

.ms-test__tabla tbody td[b-ywhx1synjx] {
    padding-top: 10px;
    padding-bottom: 10px;
}

.ms-test__tabla .ms-test__c-ord[b-ywhx1synjx] { width: 72px; text-align: center; }
.ms-test__tabla .ms-test__c-bib[b-ywhx1synjx] { width: 72px; text-align: center; font-size: 15px; font-variant-numeric: tabular-nums; color: var(--ms-text); }
.ms-test__tabla .ms-test__c-gr[b-ywhx1synjx] { width: 96px; }
.ms-test__tabla .ms-test__c-rk[b-ywhx1synjx] { width: 64px; text-align: center; }
.ms-test__tabla .ms-test__c-res[b-ywhx1synjx] { width: 150px; text-align: right; }
.ms-test__tabla .ms-test__c-irm[b-ywhx1synjx] { width: 72px; text-align: center; }

/* ORD: carril en pastilla de marca, como en la hoja de resultados. */
.ms-test__ord[b-ywhx1synjx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 30px;
    border-radius: var(--ms-radius);
    background: var(--ms-brand);
    color: var(--ms-on-brand);
    font-size: 15px;
    font-weight: 700;
}

/* GR: código de club arriba y categoría abajo, con barra de acento. */
.ms-test__gr[b-ywhx1synjx] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    min-width: 56px;
    padding-left: 10px;
    border-left: 3px solid var(--ms-info);
    line-height: 1.25;
}

.ms-test__gr small[b-ywhx1synjx] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--ms-text-3);
}

.ms-test__gr b[b-ywhx1synjx] {
    font-size: 13px;
    color: var(--ms-text);
}

.ms-test__nombre[b-ywhx1synjx] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
}

.ms-test__nombre b[b-ywhx1synjx] {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ms-text);
}

.ms-test__nombre span[b-ywhx1synjx] {
    font-size: 12px;
    color: var(--ms-text-3);
}

.ms-test__rk[b-ywhx1synjx] {
    font-size: 20px;
    font-weight: 800;
    font-style: italic;
    color: var(--ms-text);
}

/* RES: campo editable, grande y alineado a la derecha como una marca. */
.ms-test__res[b-ywhx1synjx] {
    height: 38px;
    text-align: right;
    font-size: 17px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ms-test__res.is-invalid[b-ywhx1synjx] {
    border-color: var(--ms-danger);
    box-shadow: 0 0 0 3px var(--ms-danger-bg);
}

.ms-test__tipo[b-ywhx1synjx] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ms-test__tipo .ms-label[b-ywhx1synjx],
.ms-test__tipo .ms-hint[b-ywhx1synjx] { margin: 0; }

.ms-test__irm[b-ywhx1synjx] {
    min-width: 42px;
    justify-content: center;
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .ms-test__tabla .ms-test__c-ord[b-ywhx1synjx],
    .ms-test__tabla .ms-test__c-bib[b-ywhx1synjx],
    .ms-test__tabla .ms-test__c-gr[b-ywhx1synjx],
    .ms-test__tabla .ms-test__c-rk[b-ywhx1synjx],
    .ms-test__tabla .ms-test__c-res[b-ywhx1synjx],
    .ms-test__tabla .ms-test__c-irm[b-ywhx1synjx] { width: auto; text-align: right; }

    .ms-test__res[b-ywhx1synjx] { max-width: 160px; margin-left: auto; }
}
/* /Components/Pages/UserEditor.razor.rz.scp.css */
/* ============================================================================
   UserEditor — la "hoja" que sustituye al listado de usuarios.

   Se apila en la misma celda de rejilla que el listado (ver .ms-usuarios__pila
   en UsersManager.razor.css) dentro de .ms-page. La barra lateral y la
   superior siguen visibles y operativas; lo que se sustituye es el listado.

   El fondo es opaco, no translúcido: detrás hay una tabla densa que se leería
   a través. El listado no se desmonta, sólo queda inerte, así que al volver
   conserva búsqueda, filtros y scroll.
   ========================================================================== */

.ms-sheet[b-6ipec7tsca] {
    grid-area: 1 / 1;
    z-index: 2;
    background: var(--ms-bg);
    animation: ms-sheet-in-b-6ipec7tsca .18s var(--ms-ease);
    scroll-margin-top: calc(var(--ms-topbar-h) + 16px);
}

@keyframes ms-sheet-in-b-6ipec7tsca {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ms-sheet[b-6ipec7tsca] { animation: none; }
}

/* El <form> lo pinta EditForm, así que no lleva el atributo de ámbito de este
   componente y hay que alcanzarlo con ::deep. */
.ms-sheet[b-6ipec7tsca]  form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* --- Barra de acciones -----------------------------------------------------
   Pegajosa bajo la barra superior de la aplicación (sticky a 0 / z-index 1020):
   «Volver» y «Guardar» siguen a mano por largo que sea el formulario. */
.ms-sheet__bar[b-6ipec7tsca] {
    position: sticky;
    top: var(--ms-topbar-h);
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-lg);
    box-shadow: var(--ms-shadow-sm);
}

.ms-sheet__ident[b-6ipec7tsca] {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.ms-sheet__ident-text[b-6ipec7tsca] { min-width: 0; }

.ms-sheet__ident-text h1[b-6ipec7tsca] {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ms-text);
    line-height: 1.3;
}

.ms-sheet__bar-end[b-6ipec7tsca] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex: none;
}

/* --- Cuerpo ---------------------------------------------------------------
   Sin scroll propio: la hoja va en el flujo de la página, así que scrollea la
   página entera. */
.ms-sheet__inner[b-6ipec7tsca] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 8px;
}

.ms-actions-inline[b-6ipec7tsca] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ms-org-picker[b-6ipec7tsca] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ms-org-picker__column[b-6ipec7tsca] {
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-md);
    padding: 10px;
    background: var(--ms-surface);
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 180px;
}

.ms-org-row[b-6ipec7tsca] {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: space-between;
}

.ms-org-row__name[b-6ipec7tsca] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* --- Estrecho ------------------------------------------------------------- */
@media (max-width: 767.98px) {
    .ms-sheet__bar[b-6ipec7tsca] { padding: 10px 12px; gap: 8px; flex-wrap: wrap; }
    .ms-sheet__ident[b-6ipec7tsca] { order: 3; width: 100%; }
    .ms-sheet__bar-end[b-6ipec7tsca] { gap: 6px; }
    .ms-org-picker[b-6ipec7tsca] { grid-template-columns: 1fr; }

    /* En móvil el botón «Volver» ya es la salida; el texto de Cancelar sobra. */
    .ms-sheet__bar-end > .ms-btn--ghost[b-6ipec7tsca] { display: none; }
}
/* /Components/Pages/UsersManager.razor.rz.scp.css */
.ms-usuarios__pila[b-cn03cs8xqd] {
    display: grid;
    flex: 1;
}

.ms-usuarios__base[b-cn03cs8xqd] {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-self: start;
}

.ms-usuarios__kpis[b-cn03cs8xqd] { gap: 12px; }
.ms-usuarios__matriz[b-cn03cs8xqd] { margin-left: auto; }
.ms-usuarios__count[b-cn03cs8xqd] { flex: none; white-space: nowrap; }

.ms-usuarios__tabla[b-cn03cs8xqd]  thead th {
    height: 44px;
    padding-top: 0;
    padding-bottom: 0;
}

.ms-usuarios__tabla[b-cn03cs8xqd]  tbody td {
    height: auto;
    padding-top: 13px;
    padding-bottom: 13px;
}

.ms-usuarios__tabla[b-cn03cs8xqd]  .ms-cell-user { gap: 12px; }
.ms-usuarios__tabla[b-cn03cs8xqd]  .ms-cell-user__meta { line-height: 1.45; }
.ms-usuarios__tabla[b-cn03cs8xqd]  .ms-cell-user__meta span {
    font-family: var(--ms-font-mono);
    font-size: 10.5px;
}

.ms-usuarios__tabla[b-cn03cs8xqd]  td.ms-table__mono { font-size: 12px; }

.ms-kpi-skel[b-cn03cs8xqd] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.ms-kpi-skel__lines[b-cn03cs8xqd] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

@media (max-width: 767.98px) {
    .ms-usuarios__matriz[b-cn03cs8xqd] { margin-left: 0; }
    .ms-usuarios__count[b-cn03cs8xqd] { margin-left: 0; }
}
/* /Components/Shared/EventUnitStatusBadge.razor.rz.scp.css */
.ms-unit-status[b-0ufn8c9h5z] { white-space: nowrap; }

/* En directo: el punto late. */
.ms-unit-status.is-live .ms-dot[b-0ufn8c9h5z] { animation: ms-unit-live-b-0ufn8c9h5z 1.2s ease-in-out infinite; }

@keyframes ms-unit-live-b-0ufn8c9h5z {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: .35; transform: scale(.7); }
}

@media (prefers-reduced-motion: reduce) {
    .ms-unit-status.is-live .ms-dot[b-0ufn8c9h5z] { animation: none; }
}
/* /Components/Shared/ExpandablePanel.razor.rz.scp.css */
.ms-xpanel[b-q8c5kdnk7h] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: border-color var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}

.ms-xpanel.is-expanded[b-q8c5kdnk7h] { border-color: var(--ms-brand); }

.ms-xpanel__header[b-q8c5kdnk7h] { gap: 12px; }

.ms-xpanel__title[b-q8c5kdnk7h] { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ms-xpanel__title-text[b-q8c5kdnk7h] { min-width: 0; }
.ms-xpanel__title h2[b-q8c5kdnk7h] { display: flex; align-items: center; gap: 8px; min-width: 0; }

.ms-xpanel__icon[b-q8c5kdnk7h] {
    flex: none;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--ms-brand-soft);
    color: var(--ms-brand);
}

.ms-xpanel__body[b-q8c5kdnk7h] { max-height: 340px; overflow: auto; 
/*                   padding: 14px 16px;*/

}
.ms-xpanel.is-expanded .ms-xpanel__body[b-q8c5kdnk7h] { max-height: none; }

/* Comprimida: sólo una cabecera baja. */
.ms-xpanel.is-collapsed .ms-xpanel__header[b-q8c5kdnk7h] { padding-top: 10px; padding-bottom: 10px; border-bottom: 0; }
.ms-xpanel.is-collapsed .ms-xpanel__icon[b-q8c5kdnk7h] { width: 26px; height: 26px; border-radius: 8px; }
.ms-xpanel.is-collapsed h2[b-q8c5kdnk7h] { font-size: 13px; }
/* /Components/Shared/KpiCard.razor.rz.scp.css */
.ms-kpi[b-h34mksbgp0] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px;
    background: var(--ms-surface);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-lg);
    box-shadow: var(--ms-shadow-sm);
    overflow: hidden;
    transition: transform var(--ms-dur) var(--ms-ease),
                border-color var(--ms-dur) var(--ms-ease);
}

.ms-kpi[b-h34mksbgp0]::after {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--kpi, var(--ms-brand));
    opacity: .9;
}

.ms-kpi:hover[b-h34mksbgp0] {
    transform: translateY(-3px);
    border-color: var(--kpi, var(--ms-brand));
}

.ms-kpi--brand[b-h34mksbgp0]   { --kpi: var(--ms-brand);   --kpi-soft: var(--ms-brand-soft); }
.ms-kpi--info[b-h34mksbgp0]    { --kpi: var(--ms-info);    --kpi-soft: var(--ms-info-bg); }
.ms-kpi--success[b-h34mksbgp0] { --kpi: var(--ms-success); --kpi-soft: var(--ms-success-bg); }
.ms-kpi--warning[b-h34mksbgp0] { --kpi: var(--ms-warning); --kpi-soft: var(--ms-warning-bg); }
.ms-kpi--danger[b-h34mksbgp0]  { --kpi: var(--ms-danger);  --kpi-soft: var(--ms-danger-bg); }

.ms-kpi__head[b-h34mksbgp0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.ms-kpi__icon[b-h34mksbgp0] {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: var(--ms-radius-lg);
    color: var(--kpi, var(--ms-brand));
    background: var(--kpi-soft, var(--ms-brand-soft));
}

.ms-kpi__label[b-h34mksbgp0] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-kpi__value[b-h34mksbgp0] {
    display: flex;
    align-items: baseline;
    gap: 7px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.ms-kpi__value b[b-h34mksbgp0] {
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1.15;
    color: var(--ms-text);
}

.ms-kpi__foot[b-h34mksbgp0] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: var(--ms-fs-sm);
    color: var(--ms-text-3);
}

.ms-kpi--inline[b-h34mksbgp0] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: 14px;
    row-gap: 4px;
}

.ms-kpi--inline .ms-kpi__value b[b-h34mksbgp0] { font-size: 23px; }
.ms-kpi--inline .ms-kpi__head[b-h34mksbgp0] { grid-row: 1 / -1; align-self: center; }
.ms-kpi--inline > :not(.ms-kpi__head)[b-h34mksbgp0] { grid-column: 2; }

.ms-kpi--compact[b-h34mksbgp0] { padding: 12px 14px; row-gap: 3px; }
.ms-kpi--compact .ms-kpi__icon[b-h34mksbgp0] { width: 34px; height: 34px; border-radius: var(--ms-radius-sm); }
.ms-kpi--compact .ms-kpi__value[b-h34mksbgp0] { margin-top: 0; }
.ms-kpi--compact .ms-kpi__value b[b-h34mksbgp0] { font-size: 21px; }
.ms-kpi--compact .ms-kpi__label[b-h34mksbgp0] { font-size: 10px; }
.ms-kpi--compact .ms-kpi__foot[b-h34mksbgp0] { font-size: 11.5px; }
/* /Components/Shared/MsAutocomplete.razor.rz.scp.css */
.ms-autocomplete[b-f35q6rwhpr] { position: relative; }

.ms-autocomplete__lista[b-f35q6rwhpr] {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 20;
  margin: 4px 0 0;
  padding: 6px;
  list-style: none;
  background: var(--ms-surface);
  border: 1px solid var(--ms-border);
  border-radius: var(--ms-radius);
  box-shadow: var(--ms-shadow-lg);
}

.ms-autocomplete__lista li[b-f35q6rwhpr] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border-radius: var(--ms-radius-sm);
  cursor: pointer;
  font-size: 13px;
  color: var(--ms-text-2);
}

.ms-autocomplete__lista li:hover[b-f35q6rwhpr],
.ms-autocomplete__lista li.is-active[b-f35q6rwhpr] {
  background: var(--ms-surface-3);
  color: var(--ms-text);
}

.ms-autocomplete__lista small[b-f35q6rwhpr] {
  color: var(--ms-text-3);
  font-size: 11px;
}
/* /Components/Shared/OptionButtons.razor.rz.scp.css */
.ms-opts[b-myy5qvcflo] { display: flex; flex-direction: column; gap: 7px; min-width: 0; }

.ms-opts__label[b-myy5qvcflo] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ms-text-3);
}

.ms-opts__items[b-myy5qvcflo] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

.ms-opt[b-myy5qvcflo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 34px;
    height: 28px;
    padding: 0 10px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius-sm);
    background: var(--ms-surface-2);
    color: var(--ms-text-2);
    font-family: var(--ms-font);
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease), border-color var(--ms-dur) var(--ms-ease),
                color var(--ms-dur) var(--ms-ease), box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-opt:hover[b-myy5qvcflo] { border-color: var(--ms-border-strong); background: var(--ms-surface); color: var(--ms-text); }
.ms-opt:focus-visible[b-myy5qvcflo] { outline: none; border-color: var(--ms-brand); box-shadow: var(--ms-ring); }

.ms-opt.is-active[b-myy5qvcflo] {
    background: var(--ms-brand);
    border-color: var(--ms-brand);
    color: var(--ms-on-brand);
    box-shadow: 0 4px 12px var(--ms-brand-soft);
}

.ms-opt__n[b-myy5qvcflo] { font-size: 10.5px; font-weight: 700; opacity: .55; font-variant-numeric: tabular-nums; }
.ms-opt.is-active .ms-opt__n[b-myy5qvcflo] { opacity: .85; }
/* /Components/Shared/OptionPicker.razor.rz.scp.css */
/* OptionPicker — botones de elección única con el lenguaje de .ms-chip y
   .ms-segmented: pastilla neutra y la activa en color de marca. Hace salto
   de línea cuando no caben, así que funciona igual en móvil. */

.ms-option-picker[b-8zt0t9573l] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ms-option-picker__item[b-8zt0t9573l] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 13px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    background: var(--ms-surface);
    color: var(--ms-text-2);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease),
                color var(--ms-dur) var(--ms-ease),
                border-color var(--ms-dur) var(--ms-ease);
}

.ms-option-picker__item:hover:not(:disabled)[b-8zt0t9573l] {
    border-color: var(--ms-brand);
    color: var(--ms-brand);
}

.ms-option-picker__item.is-active[b-8zt0t9573l] {
    background: var(--ms-brand);
    border-color: var(--ms-brand);
    color: var(--ms-on-brand);
}

.ms-option-picker__item:focus-visible[b-8zt0t9573l] {
    outline: 2px solid var(--ms-brand);
    outline-offset: 2px;
}

.ms-option-picker__item:disabled[b-8zt0t9573l] {
    opacity: .45;
    cursor: not-allowed;
}

.ms-option-picker--compact .ms-option-picker__item[b-8zt0t9573l] {
    height: 28px;
    padding: 0 10px;
    font-size: 12px;
}

@media (max-width: 575.98px) {
    .ms-option-picker__item[b-8zt0t9573l] { flex: 1 1 auto; justify-content: center; }
}
/* /Components/Shared/PageHeader.razor.rz.scp.css */
/* Sólo lo propio de la cabecera: el reparto en dos columnas y los espacios
   verticales viven en layout.css porque los comparte el esqueleto. */

.ms-page-header__sub[b-pqrbum27b2] {
    margin-top: 7px;
    max-width: 720px;
}

/* Avatar (opcional) + bloque de identidad. Sin Media el contenedor tiene un
   único hijo, así que la cabecera se ve igual que sin esta fila. */
.ms-page-header__lead[b-pqrbum27b2] {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.ms-page-header__media[b-pqrbum27b2] { flex: none; }
.ms-page-header__ident[b-pqrbum27b2] { min-width: 0; }

@media (max-width: 575.98px) {
    .ms-page-header__lead[b-pqrbum27b2] { gap: 12px; }
}
/* /Components/Shared/Pagination.razor.rz.scp.css */
/* Pagination — vive dentro de la tarjeta de la tabla, de ahí el borde
   superior en lugar de un contenedor propio. */

.ms-pagination[b-r9nn10pedz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 16px;
    border-top: 1px solid var(--ms-border-soft);
    font-size: 12.5px;
    color: var(--ms-text-3);
}

.ms-pagination__pages[b-r9nn10pedz] { display: flex; align-items: center; gap: 4px; }

.ms-pagination__page[b-r9nn10pedz] {
    min-width: 30px;
    height: 30px;
    padding: 0 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ms-border);
    background: var(--ms-surface);
    border-radius: var(--ms-radius-sm);
    color: var(--ms-text-2);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--ms-dur) var(--ms-ease),
                color var(--ms-dur) var(--ms-ease),
                border-color var(--ms-dur) var(--ms-ease);
}

.ms-pagination__page:hover:not(:disabled)[b-r9nn10pedz] { color: var(--ms-brand); border-color: var(--ms-brand); }
.ms-pagination__page.is-active[b-r9nn10pedz] { background: var(--ms-brand); border-color: var(--ms-brand); color: var(--ms-on-brand); }
.ms-pagination__page:disabled[b-r9nn10pedz] { opacity: .45; cursor: not-allowed; }

/* Hueco entre saltos de pagina cuando hay demasiadas para pintarlas todas. */
.ms-pagination__gap[b-r9nn10pedz] {
    min-width: 20px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ms-text-4);
    user-select: none;
}
/* /Components/Shared/QuickEntryModal.razor.rz.scp.css */
/* QuickEntryModal — capa propia (no .ms-overlay) con el panel .ms-modal del sistema. */

.ms-quick[b-8grdcuk44f] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    justify-content: center;
    padding: 11vh 16px 16px;
    background: var(--ms-overlay);
    backdrop-filter: blur(3px);
    animation: ms-quick-in-b-8grdcuk44f .14s var(--ms-ease);
}

@keyframes ms-quick-in-b-8grdcuk44f {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* .ms-modal sólo pierde su desplazamiento inicial dentro de .ms-overlay.is-open. */
.ms-quick__modal[b-8grdcuk44f] {
    max-width: 480px;
    transform: none;
}

.ms-quick__body[b-8grdcuk44f] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ms-quick__input[b-8grdcuk44f] {
    height: 46px;
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ms-quick__input--resultado[b-8grdcuk44f] { text-align: right; }

.ms-quick__input.is-invalid[b-8grdcuk44f] {
    border-color: var(--ms-danger);
    box-shadow: 0 0 0 3px var(--ms-danger-bg);
}

.ms-quick__lista[b-8grdcuk44f] {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ms-quick__lista li[b-8grdcuk44f],
.ms-quick__elegida[b-8grdcuk44f] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: var(--ms-radius);
}

.ms-quick__lista li[b-8grdcuk44f] { cursor: pointer; }
.ms-quick__lista li:hover[b-8grdcuk44f],
.ms-quick__lista li.is-active[b-8grdcuk44f] { background: var(--ms-surface-3); }

.ms-quick__elegida[b-8grdcuk44f] {
    margin-bottom: 4px;
    background: var(--ms-brand-soft);
    border: 1px solid var(--ms-brand-border);
}

.ms-quick__clave[b-8grdcuk44f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    height: 30px;
    padding: 0 8px;
    border-radius: var(--ms-radius-sm);
    background: var(--ms-brand);
    color: var(--ms-on-brand);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ms-quick__meta[b-8grdcuk44f] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    line-height: 1.3;
}

.ms-quick__meta b[b-8grdcuk44f] { font-size: 14px; color: var(--ms-text); }
.ms-quick__meta span[b-8grdcuk44f] { font-size: 12px; color: var(--ms-text-3); }

.ms-quick__actual[b-8grdcuk44f] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text-2);
}

.ms-quick__aviso[b-8grdcuk44f] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 2px 0 0;
    font-size: 12.5px;
    color: var(--ms-text-3);
}

.ms-quick__aviso b[b-8grdcuk44f] { color: var(--ms-text); font-size: 14px; }
.ms-quick__aviso.is-error[b-8grdcuk44f] { color: var(--ms-danger); }
.ms-quick__aviso.is-ok[b-8grdcuk44f] { color: var(--ms-success); }

@media (max-width: 575.98px) {
    .ms-quick[b-8grdcuk44f] { padding: 12px; }
    .ms-quick__modal[b-8grdcuk44f] { height: auto; }
}
