@import '_content/LeafletForBlazor/LeafletForBlazor.bundle.scp.css';

/* /Pages/Activity/ActivityIndex.razor.rz.scp.css */
.situation-page[b-62w7pxlifn] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.situation-kpi-row[b-62w7pxlifn] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.situation-kpi-card[b-62w7pxlifn] {
    background: var(--rs-surface);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    border-left: 4px solid transparent;
}

.kpi-total[b-62w7pxlifn] { border-left-color: var(--rs-primary); }
.kpi-filtered[b-62w7pxlifn] { border-left-color: var(--rs-info); }
.kpi-wagons[b-62w7pxlifn] { border-left-color: var(--rs-success); }

.situation-kpi-icon[b-62w7pxlifn] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.kpi-total .situation-kpi-icon[b-62w7pxlifn] { color: var(--rs-primary-text); background: var(--rs-primary-subtle); }
.kpi-filtered .situation-kpi-icon[b-62w7pxlifn] { color: var(--rs-on-info-subtle); background: var(--rs-info-subtle); }
.kpi-wagons .situation-kpi-icon[b-62w7pxlifn] { color: var(--rs-on-success-subtle); background: var(--rs-success-subtle); }

.situation-kpi-value[b-62w7pxlifn] {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    line-height: 1.1;
}

.situation-kpi-label[b-62w7pxlifn] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
}

.filters-panel[b-62w7pxlifn] {
    background: var(--rs-surface);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.filters-header[b-62w7pxlifn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    cursor: pointer;
    user-select: none;
    border-bottom: 1px solid transparent;
    transition: background 0.15s;
}

.filters-header:hover[b-62w7pxlifn] {
    background: var(--rs-surface-container-low);
}

.filters-header.is-expanded[b-62w7pxlifn] {
    border-bottom-color: var(--rs-outline-variant);
}

.filters-header-left[b-62w7pxlifn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.filters-title[b-62w7pxlifn] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.filters-badge[b-62w7pxlifn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: 0.72rem;
    font-weight: 700;
}

.filters-hint[b-62w7pxlifn] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
}

.filters-body[b-62w7pxlifn] {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.filters-grid[b-62w7pxlifn] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.75rem;
}

.filters-grid-4[b-62w7pxlifn] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.filters-grid-2[b-62w7pxlifn] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.filter-field label[b-62w7pxlifn] {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rs-on-surface-variant);
    margin-bottom: 0.35rem;
}

.filters-actions[b-62w7pxlifn] {
    display: flex;
    gap: 0.5rem;
    padding-top: 0.25rem;
}

.grid-card[b-62w7pxlifn] {
    background: var(--rs-surface);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.grid-toolbar[b-62w7pxlifn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.grid-title[b-62w7pxlifn] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.grid-count[b-62w7pxlifn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 22px;
    padding: 0 8px;
    border-radius: 11px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
    font-size: 0.75rem;
    font-weight: 600;
}

.situation-grid-wrap[b-62w7pxlifn] {
    width: 100%;
    overflow-x: hidden;
}

/* El scroll vive dentro del grid, no en la página: así los filtros y los indicadores de arriba
   siguen a la vista mientras se recorre la tabla. */
.situation-grid-wrap[b-62w7pxlifn]  .rz-data-grid-data {
    overflow-y: auto;
}

.situation-grid-wrap[b-62w7pxlifn]  .rz-data-grid {
    border: none;
    border-radius: 0;
}

.situation-grid-wrap[b-62w7pxlifn]  .rz-grid-table {
    table-layout: fixed !important;
    width: 100% !important;
}

.situation-grid-wrap[b-62w7pxlifn]  .rz-grid-table th,
.situation-grid-wrap[b-62w7pxlifn]  .rz-grid-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 0;
    font-size: 0.78rem;
}

.situation-grid-wrap[b-62w7pxlifn]  .rz-grid-table th {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
}

/* Densidad máxima: filas apretadas para caber muchas más sin scrollear.
   La regla se ancla en .situation-grid-wrap y no en .situation-grid-densa: esa clase la lleva un
   elemento del componente Radzen, que ya no tiene el atributo de scope, así que ::deep tiene que
   partir de un elemento propio de esta página. */
.situation-grid-wrap[b-62w7pxlifn]  .situation-grid-densa .rz-grid-table td,
.situation-grid-wrap[b-62w7pxlifn]  .situation-grid-densa .rz-grid-table th {
    padding-top: 1px !important;
    padding-bottom: 1px !important;
    line-height: 1.15;
    font-size: 0.72rem;
}

/* Cabecera fija al hacer scroll: sin ella, al bajar se pierde qué columna es cuál. */
.situation-grid-wrap[b-62w7pxlifn]  .rz-grid-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.situation-cell[b-62w7pxlifn] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.panel-fade-in[b-62w7pxlifn] {
    animation: panel-fade-in-b-62w7pxlifn 0.3s ease-out;
}

@keyframes panel-fade-in-b-62w7pxlifn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1200px) {
    .filters-grid[b-62w7pxlifn] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .situation-kpi-row[b-62w7pxlifn] {
        grid-template-columns: 1fr;
    }

    .filters-grid[b-62w7pxlifn],
    .filters-grid-4[b-62w7pxlifn],
    .filters-grid-2[b-62w7pxlifn] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Admin/Audit/AuditIndex.razor.rz.scp.css */
/* ── KPI Grid ───────────────────────────────────────────────────────────── */
.aud-kpi-grid[b-3tn8ogxek1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.aud-kpi-card[b-3tn8ogxek1] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.875rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.aud-kpi-icon[b-3tn8ogxek1] {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.aud-kpi-icon span[b-3tn8ogxek1] {
    font-size: 22px;
}

.aud-kpi-icon--total[b-3tn8ogxek1] { background: rgba(99, 22, 86, 0.1); color: var(--rs-primary); }
.aud-kpi-icon--today[b-3tn8ogxek1] { background: rgba(14, 165, 233, 0.1); color: #0284c7; }
.aud-kpi-icon--users[b-3tn8ogxek1] { background: rgba(16, 185, 129, 0.1); color: #059669; }
.aud-kpi-icon--active[b-3tn8ogxek1] { background: rgba(245, 158, 11, 0.1); color: #d97706; }

.aud-kpi-body[b-3tn8ogxek1] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.aud-kpi-label[b-3tn8ogxek1] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-variant);
    font-weight: 500;
}

.aud-kpi-value[b-3tn8ogxek1] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.aud-kpi-sub[b-3tn8ogxek1] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-muted);
}

.truncate[b-3tn8ogxek1] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Barra de Filtros ────────────────────────────────────────────────────── */
.aud-filter-card[b-3tn8ogxek1] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    padding: 0.875rem 1rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.aud-filter-row[b-3tn8ogxek1] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.aud-preset-group[b-3tn8ogxek1] {
    display: inline-flex;
    background: var(--rs-surface-container);
    border-radius: 8px;
    padding: 0.2rem;
    gap: 0.2rem;
}

.aud-preset-btn[b-3tn8ogxek1] {
    background: transparent;
    border: none;
    padding: 0.35rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    transition: all 0.15s ease;
}

.aud-preset-btn--active[b-3tn8ogxek1] {
    background: var(--rs-surface);
    color: var(--rs-primary);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.aud-filter-item[b-3tn8ogxek1] {
    display: flex;
    align-items: center;
}

.aud-search-item[b-3tn8ogxek1] {
    display: flex;
    align-items: center;
    position: relative;
    flex: 1;
    min-width: 220px;
}

.aud-search-icon[b-3tn8ogxek1] {
    position: absolute;
    left: 0.625rem;
    font-size: 18px;
    color: var(--rs-on-surface-muted);
    pointer-events: none;
}

.aud-search-input[b-3tn8ogxek1] {
    width: 100%;
    padding: 0.4rem 2rem 0.4rem 2.2rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    font-size: 0.8125rem;
    color: var(--rs-on-surface);
    outline: none;
    transition: border-color 0.15s ease;
}

.aud-search-input:focus[b-3tn8ogxek1] {
    border-color: var(--rs-primary);
    background: var(--rs-surface);
}

.aud-search-clear[b-3tn8ogxek1] {
    position: absolute;
    right: 2rem;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-muted);
    display: flex;
    align-items: center;
    padding: 0;
}

.aud-search-clear span[b-3tn8ogxek1] {
    font-size: 16px;
}

.aud-search-btn[b-3tn8ogxek1] {
    position: absolute;
    right: 0.25rem;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    border-radius: 4px;
    transition: background 0.15s ease;
}

.aud-search-btn:hover[b-3tn8ogxek1] {
    background: var(--rs-primary-subtle);
}

.aud-search-btn span[b-3tn8ogxek1] {
    font-size: 18px;
}

.aud-export-btn[b-3tn8ogxek1] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: #059669;
    color: #ffffff;
    border: none;
    border-radius: 8px;
    padding: 0.45rem 0.875rem;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.15s ease;
    margin-left: auto;
}

.aud-export-btn:hover:not(:disabled)[b-3tn8ogxek1] {
    opacity: 0.9;
}

.aud-export-btn:disabled[b-3tn8ogxek1] {
    opacity: 0.6;
    cursor: not-allowed;
}

.aud-export-btn span.material-icons-round[b-3tn8ogxek1] {
    font-size: 18px;
}

.aud-spin[b-3tn8ogxek1] {
    animation: aud-spin-anim-b-3tn8ogxek1 1s linear infinite;
}

@keyframes aud-spin-anim-b-3tn8ogxek1 {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ── Loader Bar ──────────────────────────────────────────────────────────── */
.aud-loader-bar[b-3tn8ogxek1] {
    position: relative;
    width: 100%;
    height: 3px;
    background: var(--rs-surface-container);
    overflow: hidden;
}

.aud-loader-indicator[b-3tn8ogxek1] {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    background: var(--rs-primary);
    animation: aud-loader-anim-b-3tn8ogxek1 1.5s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
}

@keyframes aud-loader-anim-b-3tn8ogxek1 {
    0% {
        left: -35%;
        right: 100%;
    }
    60% {
        left: 100%;
        right: -90%;
    }
    100% {
        left: 100%;
        right: -90%;
    }
}

/* ── Grid Container ──────────────────────────────────────────────────────── */
.aud-grid-container[b-3tn8ogxek1] {
    position: relative;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.aud-date-cell[b-3tn8ogxek1] {
    display: flex;
    flex-direction: column;
}

.aud-user-cell[b-3tn8ogxek1] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.aud-user-icon[b-3tn8ogxek1] {
    font-size: 16px;
    color: var(--rs-on-surface-muted);
}

.aud-entity-cell[b-3tn8ogxek1] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.aud-entity-id[b-3tn8ogxek1] {
    font-family: monospace;
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container);
    padding: 0.1rem 0.3rem;
    border-radius: 4px;
}

.aud-detail-text[b-3tn8ogxek1] {
    font-size: 0.8125rem;
    color: var(--rs-on-surface-variant);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.aud-view-btn[b-3tn8ogxek1] {
    background: transparent;
    border: none;
    color: var(--rs-primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    border-radius: 6px;
    transition: background 0.15s ease;
}

.aud-view-btn:hover[b-3tn8ogxek1] {
    background: var(--rs-primary-subtle);
}

.aud-view-btn span[b-3tn8ogxek1] {
    font-size: 20px;
}

/* ── Badges de Acción ────────────────────────────────────────────────────── */
.aud-badge[b-3tn8ogxek1] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.aud-badge--create[b-3tn8ogxek1] { background: rgba(16, 185, 129, 0.15); color: #059669; }
.aud-badge--update[b-3tn8ogxek1] { background: rgba(245, 158, 11, 0.15); color: #d97706; }
.aud-badge--delete[b-3tn8ogxek1] { background: rgba(239, 68, 68, 0.15); color: #dc2626; }
.aud-badge--read[b-3tn8ogxek1] { background: rgba(14, 165, 233, 0.15); color: #0284c7; }
/* /Pages/Admin/SystemHealth/SystemHealthIndex.razor.rz.scp.css */
/* ── Grid de KPIs ───────────────────────────────────────────────────────── */
.sh-kpi-grid[b-3jeec4dn7h] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.sh-kpi-card[b-3jeec4dn7h] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    padding: 1.125rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.sh-kpi-card:hover[b-3jeec4dn7h] {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}

.sh-kpi-icon[b-3jeec4dn7h] {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sh-kpi-icon span[b-3jeec4dn7h] {
    font-size: 24px;
}

.sh-kpi-icon--cpu[b-3jeec4dn7h] {
    background: rgba(99, 22, 86, 0.1);
    color: var(--rs-primary);
}

.sh-kpi-icon--ram[b-3jeec4dn7h] {
    background: rgba(14, 165, 233, 0.1);
    color: #0284c7;
}

.sh-kpi-icon--uptime[b-3jeec4dn7h] {
    background: rgba(16, 185, 129, 0.1);
    color: #059669;
}

.sh-kpi-icon--db-ok[b-3jeec4dn7h] {
    background: rgba(16, 185, 129, 0.1);
    color: #059669;
}

.sh-kpi-icon--db-err[b-3jeec4dn7h] {
    background: rgba(239, 68, 68, 0.1);
    color: #dc2626;
}

.sh-kpi-body[b-3jeec4dn7h] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.sh-kpi-label[b-3jeec4dn7h] {
    font-size: 0.8125rem;
    color: var(--rs-on-surface-variant);
    font-weight: 500;
}

.sh-kpi-value-row[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 0.25rem 0;
}

.sh-kpi-value[b-3jeec4dn7h] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.sh-kpi-sub[b-3jeec4dn7h] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
}

.sh-kpi-detail[b-3jeec4dn7h] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Progress bar ────────────────────────────────────────────────────────── */
.sh-progress-bar-bg[b-3jeec4dn7h] {
    width: 100%;
    height: 6px;
    background: var(--rs-surface-container);
    border-radius: 999px;
    overflow: hidden;
    margin-top: 0.375rem;
}

.sh-progress-bar-fill[b-3jeec4dn7h] {
    height: 100%;
    border-radius: 999px;
    transition: width 0.3s ease;
}

.sh-progress--ok[b-3jeec4dn7h] { background: #10b981; }
.sh-progress--warn[b-3jeec4dn7h] { background: #f59e0b; }
.sh-progress--err[b-3jeec4dn7h] { background: #ef4444; }

/* ── Badges ─────────────────────────────────────────────────────────────── */
.sh-badge[b-3jeec4dn7h] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.sh-badge--ok[b-3jeec4dn7h] { background: rgba(16, 185, 129, 0.15); color: #059669; }
.sh-badge--warn[b-3jeec4dn7h] { background: rgba(245, 158, 11, 0.15); color: #d97706; }
.sh-badge--err[b-3jeec4dn7h] { background: rgba(239, 68, 68, 0.15); color: #dc2626; }
.sh-badge--prod[b-3jeec4dn7h] { background: rgba(99, 22, 86, 0.15); color: var(--rs-primary); }
.sh-badge--dev[b-3jeec4dn7h] { background: rgba(100, 116, 139, 0.15); color: #475569; }

/* ── Tabs & Panels ──────────────────────────────────────────────────────── */
.sh-tabs[b-3jeec4dn7h] {
    background: transparent;
    border: none;
}

.sh-panel-grid[b-3jeec4dn7h] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 1.25rem;
    padding-top: 1rem;
}

.sh-card[b-3jeec4dn7h] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.sh-card-header[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.sh-card-icon[b-3jeec4dn7h] {
    font-size: 22px;
    color: var(--rs-primary);
}

.sh-card-title[b-3jeec4dn7h] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin: 0;
    flex: 1;
}

.sh-card-body[b-3jeec4dn7h] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sh-info-row[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.875rem;
    gap: 1rem;
}

.sh-info-label[b-3jeec4dn7h] {
    color: var(--rs-on-surface-variant);
}

.sh-info-value[b-3jeec4dn7h] {
    color: var(--rs-on-surface);
    font-weight: 500;
    text-align: right;
}

.sh-info-code[b-3jeec4dn7h] {
    font-family: monospace;
    font-size: 0.8125rem;
    background: var(--rs-surface-container);
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
}

/* ── GC Boxes ───────────────────────────────────────────────────────────── */
.sh-gc-boxes[b-3jeec4dn7h] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.sh-gc-box[b-3jeec4dn7h] {
    background: var(--rs-surface-container);
    border-radius: 8px;
    padding: 0.75rem 0.5rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.sh-gc-count[b-3jeec4dn7h] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--rs-primary);
}

.sh-gc-label[b-3jeec4dn7h] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-variant);
    margin-top: 0.25rem;
}

/* ── Acciones & Botones ──────────────────────────────────────────────────── */
.sh-action-btn[b-3jeec4dn7h] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface);
    font-size: 0.8125rem;
    font-weight: 500;
    padding: 0.35rem 0.75rem;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.sh-action-btn:hover:not(:disabled)[b-3jeec4dn7h] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary);
    border-color: var(--rs-primary-light);
}

.sh-action-btn:disabled[b-3jeec4dn7h] {
    opacity: 0.6;
    cursor: not-allowed;
}

.sh-action-btn span.material-icons-round[b-3jeec4dn7h] {
    font-size: 18px;
}

.sh-spin[b-3jeec4dn7h] {
    animation: sh-spin-anim 1s linear infinite;
}

@@keyframes sh-spin-anim {
    from[b-3jeec4dn7h] { transform: rotate(0deg); }
    to[b-3jeec4dn7h] { transform: rotate(360deg); }
}

/* ── Git SHA Wrapper ────────────────────────────────────────────────────── */
.sh-git-sha-wrapper[b-3jeec4dn7h] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: var(--rs-surface-container);
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    border: 1px solid var(--rs-outline-variant);
}

.sh-git-icon[b-3jeec4dn7h] {
    font-size: 16px;
    color: var(--rs-primary);
}

.sh-git-sha[b-3jeec4dn7h] {
    font-family: monospace;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.sh-copy-btn[b-3jeec4dn7h] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-variant);
    display: flex;
    align-items: center;
    padding: 0;
}

.sh-copy-btn:hover[b-3jeec4dn7h] {
    color: var(--rs-primary);
}

.sh-copy-btn span[b-3jeec4dn7h] {
    font-size: 16px;
}

/* ── Almacenamiento ─────────────────────────────────────────────────────── */
.sh-drive-item[b-3jeec4dn7h] {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px dashed var(--rs-outline-variant);
}

.sh-drive-item:last-child[b-3jeec4dn7h] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.sh-drive-header[b-3jeec4dn7h] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.875rem;
}

.sh-drive-name[b-3jeec4dn7h] {
    font-weight: 600;
    color: var(--rs-on-surface);
}

.sh-drive-label[b-3jeec4dn7h] {
    color: var(--rs-on-surface-variant);
    font-size: 0.8125rem;
}

.sh-drive-pct[b-3jeec4dn7h] {
    font-weight: 600;
    color: var(--rs-on-surface);
    font-size: 0.8125rem;
}

.sh-drive-footer[b-3jeec4dn7h] {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
    margin-top: 0.25rem;
}

.sh-dir-stat[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.75rem;
    background: var(--rs-surface-container);
    border-radius: 8px;
}

.sh-dir-icon[b-3jeec4dn7h] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sh-dir-info[b-3jeec4dn7h] {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sh-dir-title[b-3jeec4dn7h] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--rs-on-surface);
}

.sh-dir-size[b-3jeec4dn7h] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--rs-primary);
}

/* ── Workers Grid ───────────────────────────────────────────────────────── */
.sh-worker-name-cell[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sh-worker-icon[b-3jeec4dn7h] {
    font-size: 18px;
    color: var(--rs-primary);
}

.sh-empty-msg[b-3jeec4dn7h] {
    font-size: 0.875rem;
    color: var(--rs-on-surface-muted);
    margin: 0;
}

.sh-metric-pill[b-3jeec4dn7h] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.775rem;
    font-weight: 500;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container);
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
}

.sh-metric-icon[b-3jeec4dn7h] {
    font-size: 15px;
    color: var(--rs-on-surface-muted);
}

.sh-metric-pill--cpu[b-3jeec4dn7h] {
    background: rgba(99, 22, 86, 0.08);
    color: var(--rs-primary);
}
.sh-metric-pill--cpu .sh-metric-icon[b-3jeec4dn7h] {
    color: var(--rs-primary);
}

.sh-metric-pill--ram[b-3jeec4dn7h] {
    background: rgba(14, 165, 233, 0.08);
    color: #0284c7;
}
.sh-metric-pill--ram .sh-metric-icon[b-3jeec4dn7h] {
    color: #0284c7;
}

.sh-metric-pill--db[b-3jeec4dn7h] {
    background: rgba(16, 185, 129, 0.08);
    color: #059669;
}
.sh-metric-pill--db .sh-metric-icon[b-3jeec4dn7h] {
    color: #059669;
}

/* ── Workers externos (latido en WorkerHeartbeat) ─────────────────────────
   Solo tokens del tema: esta tarjeta es nueva y se ve bien en claro y oscuro. */
.ew-card[b-3jeec4dn7h] { margin-bottom: 16px; }

.ew-headline[b-3jeec4dn7h] {
    margin: 0 0 12px;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.ew-list[b-3jeec4dn7h] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ew-row[b-3jeec4dn7h] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 12px 14px;
    background: var(--rs-surface);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ew-main[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ew-name[b-3jeec4dn7h] { display: flex; flex-direction: column; min-width: 0; }
.ew-title[b-3jeec4dn7h] { font-weight: 600; color: var(--rs-on-surface); }
.ew-desc[b-3jeec4dn7h] { font-size: 0.8rem; color: var(--rs-on-surface-variant); }

.ew-reason[b-3jeec4dn7h] { font-size: 0.875rem; color: var(--rs-on-surface); }

.ew-facts[b-3jeec4dn7h] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 4px 16px;
    margin: 0;
}
.ew-facts dt[b-3jeec4dn7h] { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--rs-on-surface-muted); }
.ew-facts dd[b-3jeec4dn7h] { margin: 0; font-size: 0.85rem; color: var(--rs-on-surface-variant); overflow-wrap: anywhere; }

.ew-last-error[b-3jeec4dn7h] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    border-left: 3px solid var(--rs-outline-strong);
    padding-left: 8px;
    overflow-wrap: anywhere;
}

.ew-chip[b-3jeec4dn7h] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}
.ew-chip .material-icons-round[b-3jeec4dn7h] { font-size: 16px; }
.ew-chip--success[b-3jeec4dn7h] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.ew-chip--warning[b-3jeec4dn7h] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.ew-chip--danger[b-3jeec4dn7h]  { background: var(--rs-danger-subtle);  color: var(--rs-on-danger-subtle); }
.ew-chip--neutral[b-3jeec4dn7h] { background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle); }

.ew-empty[b-3jeec4dn7h] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    color: var(--rs-on-surface-variant);
}
/* /Pages/Admin/UserActivity/UserActivityIndex.razor.rz.scp.css */
/* ── KPI Grid ───────────────────────────────────────────────────────────── */
.uact-kpi-grid[b-searqx2bg6] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.uact-kpi-card[b-searqx2bg6] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    padding: 1.125rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.uact-kpi-card--online[b-searqx2bg6] {
    border-color: rgba(16, 185, 129, 0.3);
    background: linear-gradient(180deg, rgba(16, 185, 129, 0.04) 0%, var(--rs-surface) 100%);
}

.uact-kpi-card--alert[b-searqx2bg6] {
    border-color: rgba(239, 68, 68, 0.3);
    background: linear-gradient(180deg, rgba(239, 68, 68, 0.04) 0%, var(--rs-surface) 100%);
}

.uact-kpi-icon[b-searqx2bg6] {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.uact-kpi-icon span[b-searqx2bg6] {
    font-size: 24px;
}

.uact-kpi-icon--online[b-searqx2bg6] { background: rgba(16, 185, 129, 0.15); color: #059669; }
.uact-kpi-icon--success[b-searqx2bg6] { background: rgba(14, 165, 233, 0.15); color: #0284c7; }
.uact-kpi-icon--neutral[b-searqx2bg6] { background: rgba(100, 116, 139, 0.15); color: #475569; }
.uact-kpi-icon--err[b-searqx2bg6] { background: rgba(239, 68, 68, 0.15); color: #dc2626; }
.uact-kpi-icon--total[b-searqx2bg6] { background: rgba(99, 22, 86, 0.15); color: var(--rs-primary); }

.uact-kpi-body[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.uact-kpi-label[b-searqx2bg6] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-variant);
    font-weight: 500;
}

.uact-kpi-value-row[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.uact-kpi-value[b-searqx2bg6] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.uact-live-badge[b-searqx2bg6] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 700;
    color: #059669;
    background: rgba(16, 185, 129, 0.15);
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    letter-spacing: 0.03em;
}

.uact-live-dot[b-searqx2bg6] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #10b981;
    animation: uact-pulse 1.5s infinite;
}

@@keyframes uact-pulse {
    0%[b-searqx2bg6] { transform: scale(0.95); opacity: 0.8; }
    50%[b-searqx2bg6] { transform: scale(1.3); opacity: 1; }
    100%[b-searqx2bg6] { transform: scale(0.95); opacity: 0.8; }
}

/* ── Tarjetas Estructuradas ──────────────────────────────────────────────── */
.uact-card[b-searqx2bg6] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.uact-card-header[b-searqx2bg6] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    flex-wrap: wrap;
    gap: 0.75rem;
}

.uact-header-title[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.uact-header-title span.material-icons-round[b-searqx2bg6] {
    font-size: 22px;
    color: var(--rs-primary);
}

.uact-header-title h3[b-searqx2bg6] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin: 0;
}

.uact-card-body[b-searqx2bg6] {
    padding: 1.25rem;
}

.uact-refresh-btn[b-searqx2bg6] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 6px;
    padding: 0.35rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--rs-on-surface);
    cursor: pointer;
    transition: all 0.15s ease;
}

.uact-refresh-btn:hover[b-searqx2bg6] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary);
    border-color: var(--rs-primary-light);
}

.uact-refresh-btn span.material-icons-round[b-searqx2bg6] {
    font-size: 16px;
}

/* ── Online Users Grid ──────────────────────────────────────────────────── */
.uact-online-grid[b-searqx2bg6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.uact-online-user-card[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.875rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    transition: transform 0.15s ease;
}

.uact-online-user-card:hover[b-searqx2bg6] {
    transform: translateY(-2px);
    border-color: rgba(99, 22, 86, 0.3);
}

.uact-user-avatar-wrap[b-searqx2bg6] {
    position: relative;
    display: inline-flex;
}

.uact-online-dot[b-searqx2bg6] {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 12px;
    height: 12px;
    background: #10b981;
    border: 2px solid var(--rs-surface);
    border-radius: 50%;
}

.uact-user-info[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.uact-user-name[b-searqx2bg6] {
    font-size: 0.875rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.uact-user-handle[b-searqx2bg6] {
    font-size: 0.75rem;
}

.uact-user-email[b-searqx2bg6] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.uact-user-ip[b-searqx2bg6] {
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface);
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    border: 1px solid var(--rs-outline-variant);
}

.uact-empty-online[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--rs-on-surface-muted);
    font-size: 0.9375rem;
    padding: 0.5rem 0;
}

.uact-empty-online span.material-icons-round[b-searqx2bg6] {
    font-size: 24px;
}

/* ── Two Column Grid ────────────────────────────────────────────────────── */
.uact-two-column-grid[b-searqx2bg6] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
    gap: 1.25rem;
}

.uact-bars-list[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.uact-bar-item[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.uact-bar-header[b-searqx2bg6] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8125rem;
}

.uact-bar-name[b-searqx2bg6] {
    color: var(--rs-on-surface);
}

.uact-bar-count[b-searqx2bg6] {
    color: var(--rs-primary);
}

.uact-bar-track[b-searqx2bg6] {
    width: 100%;
    height: 8px;
    background: var(--rs-surface-container);
    border-radius: 999px;
    overflow: hidden;
}

.uact-bar-fill[b-searqx2bg6] {
    height: 100%;
    background: linear-gradient(90deg, var(--rs-primary) 0%, #a21caf 100%);
    border-radius: 999px;
    transition: width 0.4s ease;
}

.uact-top-users-list[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.uact-top-user-item[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: var(--rs-surface-container);
    border-radius: 8px;
}

.uact-top-user-rank span[b-searqx2bg6] {
    font-size: 28px;
}

.uact-top-user-info[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.uact-actions-badge[b-searqx2bg6] {
    font-size: 0.75rem;
    color: var(--rs-primary);
    background: var(--rs-primary-subtle);
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
}

/* ── Filter Controls ────────────────────────────────────────────────────── */
.uact-filter-controls[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.uact-filter-pill-group[b-searqx2bg6] {
    display: inline-flex;
    background: var(--rs-surface-container);
    border-radius: 8px;
    padding: 0.2rem;
    gap: 0.2rem;
}

.uact-pill[b-searqx2bg6] {
    background: transparent;
    border: none;
    padding: 0.35rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    transition: all 0.15s ease;
}

.uact-pill--active[b-searqx2bg6] {
    background: var(--rs-surface);
    color: var(--rs-primary);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.uact-pill--err.uact-pill--active[b-searqx2bg6] {
    color: #dc2626;
}

.uact-search-box[b-searqx2bg6] {
    position: relative;
    display: flex;
    align-items: center;
}

.uact-search-icon[b-searqx2bg6] {
    position: absolute;
    left: 0.625rem;
    font-size: 18px;
    color: var(--rs-on-surface-muted);
    pointer-events: none;
}

.uact-search-input[b-searqx2bg6] {
    padding: 0.35rem 3.5rem 0.35rem 2.2rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    font-size: 0.8125rem;
    color: var(--rs-on-surface);
    outline: none;
    width: 240px;
    transition: border-color 0.15s ease;
}

.uact-search-input:focus[b-searqx2bg6] {
    border-color: var(--rs-primary);
    background: var(--rs-surface);
}

.uact-search-clear[b-searqx2bg6] {
    position: absolute;
    right: 1.85rem;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-muted);
    display: flex;
    align-items: center;
    padding: 0;
}

.uact-search-clear span[b-searqx2bg6] {
    font-size: 15px;
}

.uact-search-btn[b-searqx2bg6] {
    position: absolute;
    right: 0.25rem;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem;
    border-radius: 4px;
    transition: background 0.15s ease;
}

.uact-search-btn:hover[b-searqx2bg6] {
    background: var(--rs-primary-subtle);
}

.uact-search-btn span[b-searqx2bg6] {
    font-size: 16px;
}

/* ── Loader Bar ──────────────────────────────────────────────────────────── */
.uact-loader-bar[b-searqx2bg6] {
    position: relative;
    width: 100%;
    height: 3px;
    background: var(--rs-surface-container);
    overflow: hidden;
}

.uact-loader-indicator[b-searqx2bg6] {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    background: var(--rs-primary);
    animation: uact-loader-anim-b-searqx2bg6 1.5s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
}

@keyframes uact-loader-anim-b-searqx2bg6 {
    0% {
        left: -35%;
        right: 100%;
    }
    60% {
        left: 100%;
        right: -90%;
    }
    100% {
        left: 100%;
        right: -90%;
    }
}

/* ── Data Grid ──────────────────────────────────────────────────────────── */
.uact-date-cell[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
}

.uact-user-cell[b-searqx2bg6] {
    display: flex;
    flex-direction: column;
}

.uact-browser-cell[b-searqx2bg6] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.uact-browser-icon[b-searqx2bg6] {
    font-size: 16px;
    color: var(--rs-on-surface-muted);
}

.uact-status-badge[b-searqx2bg6] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.uact-status-badge span.material-icons-round[b-searqx2bg6] {
    font-size: 14px;
}

.uact-status-badge--ok[b-searqx2bg6] { background: rgba(16, 185, 129, 0.15); color: #059669; }
.uact-status-badge--err[b-searqx2bg6] { background: rgba(239, 68, 68, 0.15); color: #dc2626; }
/* /Pages/Admin/Versiones/ReleaseAdmin.razor.rz.scp.css */
/* Versiones desplegadas (administración). Colores solo por tokens de railsider-theme.css. */

.rv-shell[b-8wup6bomie] {
    padding-bottom: 40px;
}

/* ── Tarjeta de la versión en ejecución ────────────────────────────────────── */

.rv-actual[b-8wup6bomie] {
    padding: 18px 22px;
    margin-bottom: 20px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    box-shadow: var(--rs-shadow-sm);
}

.rv-actual-principal[b-8wup6bomie] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 14px;
}

.rv-actual-label[b-8wup6bomie] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

.rv-actual-numero[b-8wup6bomie] {
    font-size: 1.5rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--rs-primary-text);
}

.rv-actual-entorno[b-8wup6bomie] {
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.rv-actual-detalle[b-8wup6bomie] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px 20px;
    margin: 0;
}

.rv-actual-detalle dt[b-8wup6bomie] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--rs-on-surface-muted);
}

.rv-actual-detalle dd[b-8wup6bomie] {
    margin: 2px 0 0;
    font-size: .875rem;
    color: var(--rs-on-surface);
}

.rv-aviso[b-8wup6bomie] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 16px 0 0;
    padding: 10px 14px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    border-radius: 10px;
    font-size: .82rem;
    line-height: 1.5;
}

.rv-aviso .material-icons-round[b-8wup6bomie] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ── Filtros ───────────────────────────────────────────────────────────────── */

.rv-filtros[b-8wup6bomie] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.rv-filtro[b-8wup6bomie] {
    padding: 6px 14px;
    border: 1px solid var(--rs-outline);
    border-radius: 999px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s ease, color .12s ease, border-color .12s ease;
}

.rv-filtro:hover[b-8wup6bomie] {
    background: var(--rs-surface-container);
}

.rv-filtro.activo[b-8wup6bomie] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

/* ── Tabla ─────────────────────────────────────────────────────────────────── */

.rv-tabla[b-8wup6bomie] {
    width: 100%;
    border-collapse: collapse;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    overflow: hidden;
    font-size: .85rem;
}

.rv-tabla thead th[b-8wup6bomie] {
    padding: 10px 14px;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: left;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--rs-on-surface-muted);
}

.rv-tabla tbody td[b-8wup6bomie] {
    padding: 10px 14px;
    border-bottom: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface);
    vertical-align: middle;
}

.rv-tabla tbody tr.abierta > td[b-8wup6bomie] {
    background: var(--rs-surface-container-low);
    border-bottom-color: transparent;
}

.rv-tabla code[b-8wup6bomie] {
    padding: 1px 6px;
    border-radius: 5px;
    background: var(--rs-surface-container-high);
    font-size: .78rem;
    color: var(--rs-on-surface-variant);
}

.rv-num[b-8wup6bomie] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rv-num-total[b-8wup6bomie] {
    color: var(--rs-on-surface-muted);
}

.rv-acciones[b-8wup6bomie] {
    width: 44px;
    text-align: right;
}

.rv-toggle[b-8wup6bomie] {
    display: inline-flex;
    padding: 4px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
}

.rv-toggle:hover[b-8wup6bomie] {
    background: var(--rs-surface-container-high);
}

.rv-chip[b-8wup6bomie] {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .03em;
}

.rv-chip--entorno[b-8wup6bomie] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.rv-chip--ruptura[b-8wup6bomie] {
    margin-left: 6px;
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

/* ── Detalle desplegable ───────────────────────────────────────────────────── */

.rv-detalle-fila > td[b-8wup6bomie] {
    padding: 0 14px 16px !important;
    background: var(--rs-surface-container-low);
}

.rv-detalle[b-8wup6bomie] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px 28px;
}

.rv-detalle-vacio[b-8wup6bomie] {
    margin: 0;
    padding: 8px 0;
    font-size: .82rem;
    color: var(--rs-on-surface-muted);
}

.rv-grupo h4[b-8wup6bomie] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 6px;
    font-size: .74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.rv-grupo h4 .material-icons-round[b-8wup6bomie] {
    font-size: 1rem;
}

.rv-grupo--success h4[b-8wup6bomie] { color: var(--rs-success); }
.rv-grupo--info h4[b-8wup6bomie]    { color: var(--rs-info); }
.rv-grupo--warning h4[b-8wup6bomie] { color: var(--rs-warning); }
.rv-grupo--danger h4[b-8wup6bomie]  { color: var(--rs-danger); }
.rv-grupo--neutral h4[b-8wup6bomie] { color: var(--rs-on-surface-muted); }

.rv-grupo-nota[b-8wup6bomie] {
    text-transform: none;
    letter-spacing: 0;
    font-size: .68rem;
    font-weight: 500;
    color: var(--rs-on-surface-muted);
}

.rv-grupo ul[b-8wup6bomie] {
    margin: 0;
    padding-left: 20px;
}

.rv-grupo li[b-8wup6bomie] {
    margin-bottom: 4px;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--rs-on-surface);
}

.rv-ambito[b-8wup6bomie] {
    display: inline-block;
    margin-right: 5px;
    padding: 0 6px;
    border-radius: 4px;
    background: var(--rs-surface-container-high);
    font-size: .7rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
}

.rv-sha[b-8wup6bomie] {
    margin-left: 6px;
    opacity: .7;
}

/* ── Estados ───────────────────────────────────────────────────────────────── */

.rv-vacio[b-8wup6bomie] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 48px 24px;
    text-align: center;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline);
    border-radius: 14px;
    color: var(--rs-on-surface-muted);
}

.rv-vacio .material-icons-round[b-8wup6bomie] {
    font-size: 2.2rem;
    opacity: .55;
}

.rv-vacio p[b-8wup6bomie] {
    margin: 0;
    max-width: 48ch;
    font-size: .85rem;
    line-height: 1.55;
}

.rv-skeleton[b-8wup6bomie] {
    height: 92px;
    margin-bottom: 14px;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: rv-pulse-b-8wup6bomie 1.4s ease-in-out infinite;
}

@keyframes rv-pulse-b-8wup6bomie {
    0%, 100% { opacity: 1; }
    50%      { opacity: .55; }
}

/* La tabla nunca empuja la página a lo ancho: se desplaza dentro de su propio contenedor. */
@media (max-width: 900px) {
    .rv-tabla[b-8wup6bomie] {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}
/* /Pages/Agrupaciones/AgrupacionVagonesDialog.razor.rz.scp.css */
/* Aviso mientras se arma el Excel: el botón se queda en giro y esto pone la palabra,
   que un icono girando y sin texto no dice qué está pasando. */
.reserva-exportando[b-9wtzhozp87] {
    align-self: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

/* ── Barra de matrículas (mismo estilo que el panel del editor de lanzaderas) ── */

.reserva-plates-bar[b-9wtzhozp87] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container);
    flex-wrap: wrap;
}

.reserva-plates-icon[b-9wtzhozp87] {
    font-size: 1rem;
    color: var(--rs-on-surface-muted);
}

.reserva-plates-count[b-9wtzhozp87] { white-space: nowrap; }

/* Chips de estado: cuántos inmovilizados / con incidencia hay, y filtro al hacer clic. */
.reserva-chip[b-9wtzhozp87] {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background 0.12s, border-color 0.12s;
}

.reserva-chip .material-icons-round[b-9wtzhozp87] { font-size: 0.9rem; }

.chip-stop[b-9wtzhozp87] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    border-color: var(--rs-warning);
}

.chip-stop:hover[b-9wtzhozp87] { background: var(--rs-warning-subtle); }

.chip-issue[b-9wtzhozp87] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
    border-color: #fca5a5;
}

.chip-issue:hover[b-9wtzhozp87] { background: var(--rs-danger-subtle); }

.chip-active[b-9wtzhozp87] {
    box-shadow: 0 0 0 2px rgba(71, 85, 105, 0.35);
}

.reserva-plates-filter[b-9wtzhozp87] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: auto;
    padding: 0.15rem 0.5rem;
    border: 1px solid var(--rs-outline);
    border-radius: 6px;
    background: var(--rs-surface);
}

.reserva-plates-filter .material-icons-round[b-9wtzhozp87] {
    font-size: 0.9rem;
    color: var(--rs-on-surface-muted);
}

.reserva-plates-filter input[b-9wtzhozp87] {
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--rs-on-surface);
    width: 110px;
    min-width: 0;
}

.reserva-plates-filter input[b-9wtzhozp87]::placeholder { color: var(--rs-on-surface-muted); }

.reserva-filter-clear[b-9wtzhozp87] {
    all: unset;
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
}

.reserva-filter-clear:hover[b-9wtzhozp87] { color: var(--rs-on-surface); }
.reserva-filter-clear .material-icons-round[b-9wtzhozp87] { font-size: 0.85rem; }

.reserva-copy-btn[b-9wtzhozp87] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--rs-outline);
    border-radius: 4px;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    padding: 2px 4px;
    transition: background 0.12s, color 0.12s;
}

.reserva-copy-btn:hover[b-9wtzhozp87] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
}

.reserva-copy-btn .material-icons-round[b-9wtzhozp87] { font-size: 0.9rem; }

/* ── Columna "Vía": chip clicable + menú flotante propio ── */

.reserva-via-chip[b-9wtzhozp87] {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.35rem 0.15rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, box-shadow 0.12s;
}

.reserva-via-chip:hover:not(:disabled)[b-9wtzhozp87] { border-color: var(--rs-outline); background: var(--rs-surface-container); }
.reserva-via-chip:disabled[b-9wtzhozp87] { cursor: default; opacity: 0.6; }

.reserva-via-chip.en-via[b-9wtzhozp87] {
    background: var(--rs-info-subtle);
    border-color: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.reserva-via-chip.en-via:hover:not(:disabled)[b-9wtzhozp87] { background: var(--rs-info-subtle); border-color: #93c5fd; }
.reserva-via-chip.open[b-9wtzhozp87] { box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.35); }

.reserva-via-icon[b-9wtzhozp87] { font-size: 0.95rem; color: var(--rs-on-surface-muted); }
.reserva-via-chip.en-via .reserva-via-icon[b-9wtzhozp87] { color: var(--rs-info); }

.reserva-via-label[b-9wtzhozp87] {
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.reserva-via-caret[b-9wtzhozp87] {
    font-size: 1rem;
    color: var(--rs-on-surface-muted);
    margin-left: -0.1rem;
    transition: transform 0.15s;
}

.reserva-via-chip.open .reserva-via-caret[b-9wtzhozp87] { transform: rotate(180deg); }

/* Backdrop transparente: cierra el menú al hacer clic en cualquier otro sitio. Por encima del
   diálogo de Radzen (z-index ~1000) para capturar el clic antes que nadie. */
.reserva-via-backdrop[b-9wtzhozp87] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: transparent;
}

/* Menú flotante en fijo (coordenadas de viewport): no depende del árbol del grid. */
.reserva-via-menu[b-9wtzhozp87] {
    position: fixed;
    z-index: 2001;
    min-width: 220px;
    padding: 0.35rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.16), 0 2px 6px rgba(15, 23, 42, 0.08);
    animation: reserva-via-pop-b-9wtzhozp87 0.12s ease-out;
}

@keyframes reserva-via-pop-b-9wtzhozp87 {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.reserva-via-menu-title[b-9wtzhozp87] {
    padding: 0.25rem 0.6rem 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.reserva-via-item[b-9wtzhozp87] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.4rem 0.6rem;
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    cursor: pointer;
}

.reserva-via-item:hover[b-9wtzhozp87] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.reserva-via-item .material-icons-round[b-9wtzhozp87] { font-size: 1rem; color: var(--rs-on-surface-muted); }
.reserva-via-item:hover .material-icons-round[b-9wtzhozp87] { color: var(--rs-info); }

.reserva-via-item.current[b-9wtzhozp87] { color: var(--rs-on-info-subtle); background: var(--rs-surface-container-low); cursor: default; }
.reserva-via-item.current .material-icons-round[b-9wtzhozp87] { color: var(--rs-info); }

.reserva-via-item-name[b-9wtzhozp87] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reserva-via-item-count[b-9wtzhozp87] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-high);
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
}

.reserva-via-item.item-none[b-9wtzhozp87] { color: var(--rs-on-surface-variant); }
.reserva-via-item.item-none:hover[b-9wtzhozp87] { background: var(--rs-surface-container); color: var(--rs-on-surface); }

.reserva-via-item.item-new[b-9wtzhozp87] { color: var(--rs-on-cyan-subtle); }
.reserva-via-item.item-new .material-icons-round[b-9wtzhozp87] { color: #14b8a6; }
.reserva-via-item.item-new:hover[b-9wtzhozp87] { background: var(--rs-cyan-subtle); color: var(--rs-on-cyan-subtle); }

/* Alta inline de vía dentro del menú */
.reserva-via-new[b-9wtzhozp87] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.4rem;
    border-radius: 8px;
    background: var(--rs-cyan-subtle);
    border: 1px solid var(--rs-cyan);
    margin: 0.1rem 0;
}

.reserva-via-new-input[b-9wtzhozp87] {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--rs-outline);
    border-radius: 6px;
    background: var(--rs-surface);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    padding: 0.25rem 0.45rem;
}

.reserva-via-new-input:focus[b-9wtzhozp87] {
    outline: none;
    border-color: #14b8a6;
    box-shadow: 0 0 0 2px rgba(20, 184, 166, 0.2);
}

.reserva-via-new-ok[b-9wtzhozp87],
.reserva-via-new-cancel[b-9wtzhozp87] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    cursor: pointer;
}

.reserva-via-new-ok[b-9wtzhozp87] { background: #14b8a6; color: var(--rs-on-primary); }
.reserva-via-new-ok:hover:not(:disabled)[b-9wtzhozp87] { background: #0d9488; }
.reserva-via-new-ok:disabled[b-9wtzhozp87] { opacity: 0.45; cursor: default; }
.reserva-via-new-cancel[b-9wtzhozp87] { color: var(--rs-on-surface-muted); }
.reserva-via-new-cancel:hover[b-9wtzhozp87] { background: var(--rs-surface-container-high); color: var(--rs-on-surface); }
.reserva-via-new-ok .material-icons-round[b-9wtzhozp87],
.reserva-via-new-cancel .material-icons-round[b-9wtzhozp87] { font-size: 1rem; }

.reserva-via-menu-sep[b-9wtzhozp87] {
    height: 1px;
    margin: 0.3rem 0.4rem;
    background: var(--rs-surface-container-high);
}

.reserva-via-menu-empty[b-9wtzhozp87] {
    padding: 0.4rem 0.6rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
    max-width: 240px;
}

.reserva-via-pos[b-9wtzhozp87] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #1e40af;
    color: var(--rs-on-primary);
    font-size: 0.68rem;
    font-weight: 700;
}

/* ── Identificadores por vagón en la columna de matrícula ── */

.reserva-plate-cell[b-9wtzhozp87] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.reserva-flag[b-9wtzhozp87] {
    font-size: 1rem;
    line-height: 1;
    cursor: help;
}

.flag-stop[b-9wtzhozp87] { color: var(--rs-warning); }
.flag-issue[b-9wtzhozp87] { color: var(--rs-danger); }
/* /Pages/Agrupaciones/ConfirmarCambiosReservaDialog.razor.rz.scp.css */
.rs-confirmar-cambios[b-rx7gfpz0cq] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    color: var(--rs-on-surface);
}

.rs-confirmar-cambios-pregunta[b-rx7gfpz0cq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.rs-confirmar-cambios-pregunta .material-icons-round[b-rx7gfpz0cq] {
    color: var(--rs-primary-text);
}

.rs-confirmar-cambios-intro[b-rx7gfpz0cq] {
    margin: 0;
    color: var(--rs-on-surface-variant);
}

.rs-confirmar-cambios-lista[b-rx7gfpz0cq] {
    margin: 0;
    padding-left: 1.25rem;
    max-height: 12rem;
    overflow-y: auto;
    font-size: 0.9rem;
}

.rs-confirmar-cambios-mas[b-rx7gfpz0cq] {
    color: var(--rs-on-surface-muted);
    list-style: none;
    margin-left: -1.25rem;
}

.rs-confirmar-cambios-aviso[b-rx7gfpz0cq] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    margin: 0;
    padding: 0.6rem 0.75rem;
    border-radius: 8px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.88rem;
}

.rs-confirmar-cambios-botones[b-rx7gfpz0cq] {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
/* /Pages/Agrupaciones/ReservaHistorialDialog.razor.rz.scp.css */
.rs-historial[b-t8onp0d0zv] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    color: var(--rs-on-surface);
}

.rs-historial-intro[b-t8onp0d0zv],
.rs-historial-vacio[b-t8onp0d0zv] {
    margin: 0;
    color: var(--rs-on-surface-variant);
    font-size: 0.9rem;
}

.rs-historial-vacio[b-t8onp0d0zv] {
    padding: 1.5rem;
    text-align: center;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 8px;
}

.rs-historial-tabla-wrap[b-t8onp0d0zv] {
    max-height: 60vh;
    overflow: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
}

.rs-historial-tabla[b-t8onp0d0zv] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.rs-historial-tabla th[b-t8onp0d0zv],
.rs-historial-tabla td[b-t8onp0d0zv] {
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: left;
    vertical-align: top;
}

.rs-historial-tabla th[b-t8onp0d0zv] {
    position: sticky;
    top: 0;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.rs-historial-tabla .num[b-t8onp0d0zv] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rs-historial-tabla .accion[b-t8onp0d0zv] {
    text-align: right;
    white-space: nowrap;
}

.rs-historial-tabla tr.actual td[b-t8onp0d0zv] {
    background: var(--rs-primary-subtle);
}

.rs-historial-origen[b-t8onp0d0zv] {
    display: inline-block;
    margin-right: 0.4rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.rs-historial-origen--restauracion[b-t8onp0d0zv],
.rs-historial-origen--descartar[b-t8onp0d0zv],
.rs-historial-origen--deshacer[b-t8onp0d0zv] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.rs-historial-origen--inicial[b-t8onp0d0zv] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.rs-historial-nota[b-t8onp0d0zv] {
    color: var(--rs-on-surface);
}

.rs-historial-actual-tag[b-t8onp0d0zv] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-primary-text);
}

.rs-historial-pie[b-t8onp0d0zv] {
    display: flex;
    justify-content: flex-end;
}
/* /Pages/Agrupaciones/ReservaYardDialog.razor.rz.scp.css */
.yard-shell[b-k03t9i4ps0] {
    display: flex;
    gap: 0.8rem;
    height: 80vh;
    max-height: 90vh;
}

/* Pantalla completa: el diálogo ya ocupa la pantalla (.yard-dialog-fullscreen en
   rs-dialogs.css), así que aquí solo hay que dejar de limitar el alto y dar algo más de
   sitio al panel, que en una pantalla grande se queda estrecho. */
.yard-shell.fs[b-k03t9i4ps0] {
    height: 100%;
    max-height: none;
}

.yard-shell.fs .yard-panel[b-k03t9i4ps0] {
    flex-basis: 400px;
    transition: flex-basis 0.22s ease, opacity 0.16s ease, visibility 0s;
}

/* Panel echado a un lado (botón de la barra del 3D). Se colapsa el ancho en vez de
   ocultarlo de golpe para que el ResizeObserver del visor vea crecer el hueco y la
   cámara acompañe al movimiento. La visibilidad se quita al final: mientras se
   desliza sigue viéndose, pero ya no atrapa clics ni el foco al terminar. */
.yard-shell.fs.panel-oculto[b-k03t9i4ps0] {
    gap: 0;
}

.yard-shell.fs.panel-oculto .yard-panel[b-k03t9i4ps0] {
    flex-basis: 0;
    min-width: 0;
    border-width: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: flex-basis 0.22s ease, opacity 0.16s ease, visibility 0s linear 0.22s;
}

/* ── Columna 3D ── */

.yard-3d-col[b-k03t9i4ps0] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    border-radius: 12px;
    overflow: hidden;
    background: #0a1322;
}

.yard-3d-host[b-k03t9i4ps0] {
    position: absolute;
    inset: 0;
}

.yard-3d-host[b-k03t9i4ps0]  canvas,
.yard-3d-host canvas[b-k03t9i4ps0] {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.yard-hud[b-k03t9i4ps0] {
    position: absolute;
    left: 12px;
    bottom: 10px;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.72rem;
    color: rgba(219, 231, 246, 0.75);
    pointer-events: none;
}

.yard-hud span[b-k03t9i4ps0] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.yard-hud .material-icons-round[b-k03t9i4ps0] { font-size: 0.9rem; }

.yard-3d-controls[b-k03t9i4ps0] {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 0.35rem;
}

.yard-view-toggle[b-k03t9i4ps0] {
    display: inline-flex;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: var(--rs-scrim);
}

.yard-view-btn[b-k03t9i4ps0] {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    height: 34px;
    /* Ancho fijo e igual para 2D y 3D: con el texto como referencia, "3D" + su icono salía
       más ancho y el par quedaba descompensado. */
    width: 62px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--rs-on-surface-disabled);
    cursor: pointer;
}

.yard-view-btn .material-icons-round[b-k03t9i4ps0] { font-size: 1rem; }
.yard-view-btn:hover[b-k03t9i4ps0] { background: var(--rs-surface-inverse); color: var(--rs-on-primary); }
.yard-view-btn.active[b-k03t9i4ps0] { background: var(--rs-info); color: var(--rs-on-primary); }

.yard-3d-ctrl[b-k03t9i4ps0] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--rs-scrim);
    color: var(--rs-on-surface-disabled);
    cursor: pointer;
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.yard-3d-ctrl:hover[b-k03t9i4ps0] { background: var(--rs-surface-inverse); color: var(--rs-on-primary); }

.yard-3d-empty[b-k03t9i4ps0] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    color: rgba(203, 213, 225, 0.75);
    font-size: 0.9rem;
    pointer-events: none;
}

.yard-3d-empty .material-icons-round[b-k03t9i4ps0] { font-size: 2.4rem; }

/* ── Panel tradicional ── */

.yard-panel[b-k03t9i4ps0] {
    flex: 0 0 340px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    min-height: 0;
}

.yard-panel-head[b-k03t9i4ps0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    border-radius: 12px 12px 0 0;
}

.yard-panel-head-actions[b-k03t9i4ps0] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

/* Aviso de que el libro se está armando: el botón de descarga se queda en giro y esto
   pone la palabra, que un icono girando solo no dice qué está pasando. */
.yard-exportando[b-k03t9i4ps0] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

.yard-panel-title[b-k03t9i4ps0] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 800;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

.yard-panel-title .material-icons-round[b-k03t9i4ps0] { font-size: 1.05rem; color: var(--rs-on-surface-variant); }

.yard-panel-body[b-k03t9i4ps0] {
    flex: 1;
    overflow-y: auto;
    padding: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
}

.yard-via[b-k03t9i4ps0] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    overflow: hidden;
    /* Sin esto, el flex del panel encoge cada vía y el overflow:hidden recorta sus filas. */
    flex-shrink: 0;
}

.yard-via-staging[b-k03t9i4ps0] { background: var(--rs-surface-container-low); }

.yard-via-head[b-k03t9i4ps0] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.55rem;
    background: var(--rs-surface-container);
    border-bottom: 1px solid var(--rs-outline-variant);
}

.yard-via-icon[b-k03t9i4ps0] { font-size: 1rem; color: var(--rs-on-surface-muted); }

.yard-via-name[b-k03t9i4ps0] {
    flex: 1;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    padding: 0.15rem 0.35rem;
}

.yard-via-name:hover:not(:disabled)[b-k03t9i4ps0] { border-color: var(--rs-outline); background: var(--rs-surface); }
.yard-via-name:focus[b-k03t9i4ps0] { outline: none; border-color: var(--rs-outline-strong); background: var(--rs-surface); }

.yard-via-name-static[b-k03t9i4ps0] {
    flex: 1;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.yard-via-count[b-k03t9i4ps0] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container-high);
    border-radius: 999px;
    padding: 0.05rem 0.5rem;
}

.yard-via-btn[b-k03t9i4ps0] {
    all: unset;
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 6px;
}

.yard-via-btn:hover:not(:disabled)[b-k03t9i4ps0] { color: var(--rs-on-info-subtle); background: var(--rs-info-subtle); }
.yard-via-btn:disabled[b-k03t9i4ps0] { opacity: 0.4; cursor: default; }
.yard-via-btn .material-icons-round[b-k03t9i4ps0] { font-size: 1.05rem; }

.yard-via-del[b-k03t9i4ps0] {
    all: unset;
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 6px;
}

.yard-via-del:hover:not(:disabled)[b-k03t9i4ps0] { color: var(--rs-on-danger-subtle); background: var(--rs-danger-subtle); }
.yard-via-del:disabled[b-k03t9i4ps0] { opacity: 0.4; cursor: default; }
.yard-via-del .material-icons-round[b-k03t9i4ps0] { font-size: 1.05rem; }

.yard-via-empty[b-k03t9i4ps0] {
    padding: 0.4rem 0.6rem;
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* ── Fila de vagón ── */

.yard-wagon-row[b-k03t9i4ps0] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.55rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    cursor: pointer;
    font-size: 0.8rem;
}

/* La franja de "soltar al final" va detrás de la última fila: sin la segunda regla, el borde
   de esa fila quedaría pegado al del bloque de la vía y se vería una línea doble. */
.yard-wagon-row:last-child[b-k03t9i4ps0],
.yard-wagon-row:has(+ .yard-via-end)[b-k03t9i4ps0] { border-bottom: none; }
.yard-wagon-row:hover[b-k03t9i4ps0] { background: var(--rs-surface-container-low); }

/* Mismo amarillo que el vagón seleccionado en el gemelo. */
.yard-wagon-row.selected[b-k03t9i4ps0] {
    background: var(--rs-warning-subtle);
    box-shadow: inset 3px 0 0 #facc15;
}

/* El ancla es el último pulsado: de él parte el rango con Mayús+clic y es el que el gemelo
   encuadra. Con varios marcados hay que poder distinguirlo del resto. */
.yard-wagon-row.selected.anchor[b-k03t9i4ps0] { box-shadow: inset 4px 0 0 var(--rs-primary); }

.yard-wagon-check[b-k03t9i4ps0] {
    flex: 0 0 auto;
    font-size: 1.05rem;
    color: var(--rs-on-surface-muted);
    border-radius: 4px;
}

.yard-wagon-check:hover[b-k03t9i4ps0] { color: var(--rs-primary-text); }
.yard-wagon-row.selected .yard-wagon-check[b-k03t9i4ps0] { color: var(--rs-on-warning-subtle); }

.yard-wagon-pos[b-k03t9i4ps0] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-surface-inverse);
    color: var(--rs-on-primary);
    border-radius: 50%;
    font-size: 0.68rem;
    font-weight: 700;
}

/* Cabeza y cola de la vía, con los mismos colores que los rótulos del gemelo (ver la nota de
   .yard-hud-dot.head). Un solo vagón en la vía lleva las dos clases: gana el borde de cabeza y
   el fondo de cola, que es justo lo que dice "es las dos cosas". */
.yard-wagon-pos.head[b-k03t9i4ps0] { background: #0e7490; box-shadow: 0 0 0 2px #67e8f9 inset; }
.yard-wagon-pos.tail[b-k03t9i4ps0] { background: #5b21b6; box-shadow: 0 0 0 2px #c4b5fd inset; }
.yard-wagon-pos.head.tail[b-k03t9i4ps0] { background: #155e75; box-shadow: 0 0 0 2px #a5f3fc inset; }

.yard-wagon-plate[b-k03t9i4ps0] {
    font-family: "IBM Plex Mono", Consolas, monospace;
    font-weight: 600;
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.yard-wagon-role[b-k03t9i4ps0] {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 6px;
    color: #ecfeff;
}
.yard-wagon-role.head[b-k03t9i4ps0] { background: #0e7490; }
.yard-wagon-role.tail[b-k03t9i4ps0] { background: #5b21b6; }
.yard-wagon-role.single[b-k03t9i4ps0] { background: #155e75; }

.yard-flag[b-k03t9i4ps0] {
    font-size: 0.95rem;
    cursor: help;
}

.flag-stop[b-k03t9i4ps0] { color: var(--rs-warning); }
.flag-issue[b-k03t9i4ps0] { color: var(--rs-danger); }

.yard-wagon-actions[b-k03t9i4ps0] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.yard-mini-btn[b-k03t9i4ps0] {
    all: unset;
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 4px;
}

.yard-mini-btn:hover:not(:disabled)[b-k03t9i4ps0] { color: var(--rs-on-surface); background: var(--rs-surface-container-high); }
.yard-mini-btn:disabled[b-k03t9i4ps0] { opacity: 0.4; cursor: default; }
.yard-mini-btn .material-icons-round[b-k03t9i4ps0] { font-size: 0.95rem; }

.yard-via-select[b-k03t9i4ps0] {
    max-width: 110px;
    border: 1px solid var(--rs-outline);
    border-radius: 6px;
    background: var(--rs-surface);
    font-size: 0.72rem;
    color: var(--rs-on-surface);
    padding: 0.15rem 0.25rem;
}

.yard-panel-footer[b-k03t9i4ps0] {
    display: flex;
    justify-content: flex-end;
    padding: 0.5rem 0.7rem;
    border-top: 1px solid var(--rs-outline-variant);
}

/* En pantallas estrechas el panel cae debajo del 3D. */
@media (max-width: 1080px) {
    .yard-shell[b-k03t9i4ps0] {
        flex-direction: column;
        height: auto;
        max-height: none;
    }

    .yard-3d-col[b-k03t9i4ps0] { min-height: 380px; }
    .yard-panel[b-k03t9i4ps0] { flex: 1 1 auto; max-height: 340px; }
    /* En columna lo que se colapsa es el alto, no el ancho. */
    .yard-shell.fs.panel-oculto .yard-panel[b-k03t9i4ps0] { flex: 0 0 0; max-height: 0; }
}

/* ── Leyenda de colores del HUD ── */

.yard-hud-dot[b-k03t9i4ps0] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 3px;
    margin-right: 0.1rem;
}

.yard-hud-dot.sel[b-k03t9i4ps0] { background: var(--rs-warning-subtle); }
.yard-hud-dot.mov[b-k03t9i4ps0] { background: var(--rs-success); margin-left: 0.5rem; }
/* Literales a propósito: son los colores exactos de los rótulos CABEZA / COLA del lienzo
   (END_STYLES en reserva-yard3d.js). Una leyenda que no case con la escena no sirve, y la
   escena no cambia con el tema. */
.yard-hud-dot.head[b-k03t9i4ps0] { background: #22d3ee; }
.yard-hud-dot.tail[b-k03t9i4ps0] { background: #a78bfa; margin-left: 0.5rem; }

/* ── Buscador de vagones ── */

.yard-filter[b-k03t9i4ps0] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
}

.yard-filter.active[b-k03t9i4ps0] { background: var(--rs-warning-subtle); }

.yard-filter-icon[b-k03t9i4ps0] { font-size: 1.1rem; color: var(--rs-on-surface-muted); }

.yard-filter-input[b-k03t9i4ps0] {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    padding: 0.3rem 0.55rem;
    font-size: 0.8rem;
    font-family: "IBM Plex Mono", Consolas, monospace;
    color: var(--rs-on-surface);
    background: var(--rs-surface);
}

.yard-filter-input:focus[b-k03t9i4ps0] { outline: none; border-color: var(--rs-info); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15); }
.yard-filter-input[b-k03t9i4ps0]::placeholder { font-family: inherit; font-style: italic; color: var(--rs-on-surface-muted); }

.yard-filter-count[b-k03t9i4ps0] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border-radius: 999px;
    padding: 0.05rem 0.5rem;
}

.yard-filter-clear[b-k03t9i4ps0] {
    all: unset;
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 6px;
}

.yard-filter-clear:hover[b-k03t9i4ps0] { color: var(--rs-on-surface); background: var(--rs-surface-container-high); }
.yard-filter-clear .material-icons-round[b-k03t9i4ps0] { font-size: 1.05rem; }

.yard-filter-empty[b-k03t9i4ps0] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.7rem 0.6rem;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    font-style: italic;
}

.yard-filter-empty .material-icons-round[b-k03t9i4ps0] { font-size: 1.2rem; color: var(--rs-on-surface-muted); }

/* ── Arrastrar y soltar en el panel ──
   Las clases .dragging / .drop-before / .drop-into las pone y las quita el JS
   (reservaYard3d.initPanelDnd): en Blazor Server un @ondragover por fila sería una ida y
   vuelta al servidor por cada píxel de movimiento del ratón. */

.yard-wagon-row[draggable="true"][b-k03t9i4ps0] { cursor: grab; }
.yard-wagon-row.dragging[b-k03t9i4ps0] { opacity: 0.45; cursor: grabbing; }

/* Línea de inserción: el vagón se soltará DELANTE de esta fila. */
.yard-wagon-row.drop-before[b-k03t9i4ps0] { box-shadow: inset 0 3px 0 var(--rs-primary); }
/* La fila seleccionada ya gasta box-shadow: se combinan para no perder ninguna de las dos. */
.yard-wagon-row.selected.drop-before[b-k03t9i4ps0] {
    box-shadow: inset 3px 0 0 #facc15, inset 0 3px 0 var(--rs-primary);
}

/* Destino "al final de esta vía": cabecera, vía libre y franja final. */
.yard-via-head.drop-into[b-k03t9i4ps0],
.yard-via-empty.drop-into[b-k03t9i4ps0],
.yard-via-end.drop-into[b-k03t9i4ps0] {
    background: var(--rs-primary-subtle);
    box-shadow: inset 0 0 0 2px var(--rs-primary);
}

/* Plegada mientras no se arrastra: solo estorbaría. */
.yard-via-end[b-k03t9i4ps0] {
    height: 0;
    transition: height 0.12s ease;
}

.yard-panel.dnd-active .yard-via-end[b-k03t9i4ps0] {
    height: 20px;
    border-top: 1px dashed var(--rs-outline);
}

/* ── Barra de selección múltiple ──
   Aparece con el primer vagón marcado y es lo que permite mover varios de una vez sin tocar
   el 3D. Va pegada bajo el buscador, no en el pie: lo que se mueve son las filas que se están
   mirando. */

.yard-bulk[b-k03t9i4ps0] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-primary-subtle);
}

.yard-bulk-count[b-k03t9i4ps0] {
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--rs-primary-text);
    white-space: nowrap;
}

.yard-bulk-select[b-k03t9i4ps0] {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--rs-outline);
    border-radius: 6px;
    background: var(--rs-surface);
    font-size: 0.75rem;
    color: var(--rs-on-surface);
    padding: 0.2rem 0.3rem;
}

.yard-bulk-select:disabled[b-k03t9i4ps0] { opacity: 0.5; }

.yard-bulk-clear[b-k03t9i4ps0] {
    all: unset;
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 6px;
}

.yard-bulk-clear:hover[b-k03t9i4ps0] { color: var(--rs-on-surface); background: var(--rs-surface-container-high); }
.yard-bulk-clear .material-icons-round[b-k03t9i4ps0] { font-size: 1.05rem; }
/* /Pages/Agrupaciones/VagonesFueraDeZonaDialog.razor.rz.scp.css */
.fuera-zona-dialog[b-7yh6giw2i3] {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.fuera-zona-intro[b-7yh6giw2i3] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.fuera-zona-intro p[b-7yh6giw2i3] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    line-height: 1.4;
}

.fuera-zona-intro b[b-7yh6giw2i3] { font-weight: 700; }

.fuera-zona-icon[b-7yh6giw2i3] {
    color: var(--rs-warning);
    font-size: 1.5rem;
    flex: 0 0 auto;
}

.fuera-zona-lista[b-7yh6giw2i3] {
    margin: 0;
    padding: 0.6rem 0.9rem;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    border: 1px solid var(--rs-warning-subtle);
    background: var(--rs-warning-subtle);
    border-radius: 12px;
    max-height: 240px;
    overflow-y: auto;
}

.fuera-zona-item[b-7yh6giw2i3] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    font-size: 0.85rem;
}

.fuera-zona-plate[b-7yh6giw2i3] {
    font-weight: 700;
    color: var(--rs-on-warning-subtle);
    white-space: nowrap;
}

.fuera-zona-donde[b-7yh6giw2i3] {
    color: var(--rs-on-surface-variant);
    min-width: 0;
}

.fuera-zona-desconocido[b-7yh6giw2i3] { font-style: italic; }

.fuera-zona-fecha[b-7yh6giw2i3] {
    color: var(--rs-on-surface-muted);
    font-size: 0.78rem;
}

.fuera-zona-nota[b-7yh6giw2i3] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
}

.fuera-zona-footer[b-7yh6giw2i3] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.2rem;
}
/* /Pages/Ai/AiDataQualityCard.razor.rz.scp.css */
.dq-card[b-epim27rfsp] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 16px;
    padding: 1rem 1.15rem 1.15rem;
    display: flex; flex-direction: column; gap: .75rem;
}
.dq-header[b-epim27rfsp] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.dq-header h2[b-epim27rfsp] { margin: 0; font-size: 1rem; font-weight: 800; display: inline-flex; align-items: center; gap: .4rem; }
.dq-header h2 .material-icons-round[b-epim27rfsp] { font-size: 1.15rem; color: var(--rs-primary-text); }
.dq-hint[b-epim27rfsp] { font-size: .78rem; color: var(--rs-on-surface-muted); flex: 1 1 320px; }

.dq-run[b-epim27rfsp] {
    display: inline-flex; align-items: center; gap: .3rem;
    border: 1px solid var(--rs-primary); background: var(--rs-primary); color: var(--rs-on-primary);
    border-radius: 999px; padding: .3rem .85rem; font-size: .8rem; font-weight: 700; cursor: pointer;
}
.dq-run:disabled[b-epim27rfsp] { opacity: .6; cursor: progress; }
.dq-run .material-icons-round[b-epim27rfsp] { font-size: 1rem; }

.dq-empty[b-epim27rfsp], .dq-muted[b-epim27rfsp], .dq-stamp[b-epim27rfsp] { color: var(--rs-on-surface-muted); font-size: .8rem; }
.dq-empty[b-epim27rfsp] { margin: 0; }
.dq-error[b-epim27rfsp] { margin: 0; padding: .5rem .75rem; border-radius: 10px; background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); font-size: .85rem; }

.dq-headline[b-epim27rfsp] { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; font-weight: 700; font-size: .9rem; }
.dq-headline .material-icons-round[b-epim27rfsp] { font-size: 1.1rem; }
.dq-headline .dq-stamp[b-epim27rfsp] { font-weight: 400; }
.dq-headline.is-ok .material-icons-round[b-epim27rfsp] { color: var(--rs-success); }
.dq-headline.is-info .material-icons-round[b-epim27rfsp] { color: var(--rs-info); }
.dq-headline.is-warning .material-icons-round[b-epim27rfsp] { color: var(--rs-warning); }
.dq-headline.is-problem .material-icons-round[b-epim27rfsp] { color: var(--rs-danger); }

.dq-findings[b-epim27rfsp] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.dq-finding[b-epim27rfsp] {
    display: flex; gap: .75rem; align-items: flex-start;
    padding: .6rem .75rem; border-radius: 12px;
    background: var(--rs-surface-container-low); border: 1px solid var(--rs-outline-variant);
}
.dq-finding-body[b-epim27rfsp] { display: flex; flex-direction: column; gap: .2rem; min-width: 0; font-size: .85rem; }
.dq-sample[b-epim27rfsp] { font-size: .75rem; color: var(--rs-on-surface-variant); overflow-wrap: anywhere; }
.dq-chip[b-epim27rfsp] { flex: 0 0 auto; font-size: .7rem; font-weight: 800; padding: .15rem .55rem; border-radius: 999px; white-space: nowrap; }
.dq-finding.is-ok .dq-chip[b-epim27rfsp] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.dq-finding.is-info .dq-chip[b-epim27rfsp] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.dq-finding.is-warning .dq-chip[b-epim27rfsp] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.dq-finding.is-problem .dq-chip[b-epim27rfsp] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }

.dq-two[b-epim27rfsp] { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.dq-two h3[b-epim27rfsp] { margin: 0 0 .4rem; font-size: .85rem; font-weight: 800; }
.dq-table[b-epim27rfsp] { width: 100%; border-collapse: collapse; font-size: .8rem; }
.dq-table th[b-epim27rfsp], .dq-table td[b-epim27rfsp] { text-align: left; padding: .3rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); }
.dq-table th[b-epim27rfsp] { color: var(--rs-on-surface-variant); font-weight: 700; }
.dq-table .num[b-epim27rfsp] { text-align: right; font-variant-numeric: tabular-nums; }
.dq-table tr.is-warning td[b-epim27rfsp] { color: var(--rs-on-warning-subtle); background: var(--rs-warning-subtle); }
.dq-table tr.is-problem td[b-epim27rfsp] { color: var(--rs-on-danger-subtle); background: var(--rs-danger-subtle); }

@media (max-width: 900px) {
    .dq-two[b-epim27rfsp] { grid-template-columns: 1fr; }
}
/* /Pages/Ai/AiEvalHistorySection.razor.rz.scp.css */
/* Sección «Banco de pruebas» de /admin/ia. Solo tokens --rs-* (railsider-theme.css). */

.ai-eval-header[b-dkzfhre3pj] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.ai-eval-header h2[b-dkzfhre3pj] { margin: 0; font-size: 1rem; font-weight: 800; display: inline-flex; align-items: center; gap: .4rem; }
.ai-eval-header h2 .material-icons-round[b-dkzfhre3pj] { font-size: 1.15rem; color: var(--rs-primary-text); }
.ai-eval-hint[b-dkzfhre3pj] { font-size: .78rem; color: var(--rs-on-surface-muted); flex: 1 1 280px; }
.ai-eval-icon-button[b-dkzfhre3pj] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 8px; margin-left: auto;
    border: 1px solid var(--rs-outline-variant);
    background: transparent; color: var(--rs-on-surface-variant);
    cursor: pointer;
}
.ai-eval-icon-button .material-icons-round[b-dkzfhre3pj] { font-size: 1.1rem; }
.ai-eval-icon-button:focus-visible[b-dkzfhre3pj], .ai-eval-run:focus-visible[b-dkzfhre3pj], .ai-eval-link:focus-visible[b-dkzfhre3pj] { outline: 2px solid var(--rs-primary); outline-offset: 2px; }

.ai-eval-muted[b-dkzfhre3pj] { color: var(--rs-on-surface-muted); font-size: .8rem; font-weight: 400; }

.ai-eval-empty[b-dkzfhre3pj] {
    display: flex; align-items: flex-start; gap: .75rem; flex-wrap: wrap;
    padding: .85rem 1rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline-variant);
}
.ai-eval-empty > .material-icons-round[b-dkzfhre3pj] { font-size: 1.6rem; color: var(--rs-on-surface-muted); }
.ai-eval-empty > div[b-dkzfhre3pj] { flex: 1 1 260px; }
.ai-eval-link[b-dkzfhre3pj] { color: var(--rs-primary-text); font-weight: 700; font-size: .8rem; }

.ai-eval-run-meta[b-dkzfhre3pj] { display: flex; flex-wrap: wrap; gap: .3rem; align-items: baseline; font-size: .8rem; color: var(--rs-on-surface-variant); }
.ai-eval-run-meta strong[b-dkzfhre3pj] { color: var(--rs-on-surface); font-size: .9rem; }
.ai-eval-run-meta code[b-dkzfhre3pj] { font-size: .74rem; }

.ai-eval-kpis[b-dkzfhre3pj] { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.ai-eval-kpi[b-dkzfhre3pj] {
    display: flex; flex-direction: column; gap: .15rem;
    padding: .7rem .9rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
    min-width: 0;
}
.ai-eval-kpi--success[b-dkzfhre3pj] { border-left-color: var(--rs-success); }
.ai-eval-kpi--warning[b-dkzfhre3pj] { border-left-color: var(--rs-warning); }
.ai-eval-kpi--danger[b-dkzfhre3pj] { border-left-color: var(--rs-danger); }
.ai-eval-kpi-label[b-dkzfhre3pj] { font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rs-on-surface-muted); }
.ai-eval-kpi-value[b-dkzfhre3pj] { font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.ai-eval-kpi-value small[b-dkzfhre3pj] { font-size: .85rem; font-weight: 600; color: var(--rs-on-surface-variant); }
.ai-eval-kpi-detail[b-dkzfhre3pj] { font-size: .74rem; color: var(--rs-on-surface-variant); }

.ai-eval-delta[b-dkzfhre3pj] { font-weight: 700; margin-left: .3rem; padding: 0 .4rem; border-radius: 999px; }
.ai-eval-delta--success[b-dkzfhre3pj] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.ai-eval-delta--danger[b-dkzfhre3pj] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ai-eval-delta--neutral[b-dkzfhre3pj] { background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle); }

.ai-eval-alert[b-dkzfhre3pj] {
    display: flex; align-items: center; gap: .5rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle);
    font-size: .82rem; font-weight: 600;
}

.ai-eval-grid[b-dkzfhre3pj] { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ai-eval-block[b-dkzfhre3pj] { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.ai-eval-block h3[b-dkzfhre3pj] { margin: 0; font-size: .86rem; font-weight: 800; }

.ai-eval-table[b-dkzfhre3pj] { border-collapse: collapse; width: 100%; font-size: .8rem; }
.ai-eval-table th[b-dkzfhre3pj] { text-align: left; font-size: .72rem; color: var(--rs-on-surface-muted); padding: .25rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); }
.ai-eval-table td[b-dkzfhre3pj] { padding: .3rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); font-variant-numeric: tabular-nums; }
.ai-eval-table th:not(:first-child)[b-dkzfhre3pj], .ai-eval-table td:not(:first-child)[b-dkzfhre3pj] { text-align: right; width: 80px; }
.ai-eval-rate--success[b-dkzfhre3pj] { color: var(--rs-success); font-weight: 700; }
.ai-eval-rate--warning[b-dkzfhre3pj] { color: var(--rs-warning); font-weight: 700; }
.ai-eval-rate--danger[b-dkzfhre3pj] { color: var(--rs-danger); font-weight: 700; }

.ai-eval-changes[b-dkzfhre3pj] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.ai-eval-change[b-dkzfhre3pj] {
    display: flex; flex-direction: column; gap: .25rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
}
.ai-eval-change--danger[b-dkzfhre3pj] { border-left-color: var(--rs-danger); }
.ai-eval-change--warning[b-dkzfhre3pj] { border-left-color: var(--rs-warning); }
.ai-eval-change-head[b-dkzfhre3pj] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .45rem; }
.ai-eval-change-question[b-dkzfhre3pj] { font-size: .84rem; color: var(--rs-on-surface); }
.ai-eval-verdict[b-dkzfhre3pj] { font-size: .7rem; font-weight: 700; padding: .05rem .5rem; border-radius: 999px; background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle); }
.ai-eval-verdict--danger[b-dkzfhre3pj] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ai-eval-verdict--warning[b-dkzfhre3pj] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.ai-eval-verdict--success[b-dkzfhre3pj] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }

.ai-eval-runs[b-dkzfhre3pj] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.ai-eval-run[b-dkzfhre3pj] {
    width: 100%;
    display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem;
    padding: .4rem .7rem;
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    background: transparent;
    color: var(--rs-on-surface);
    text-align: left; font-size: .8rem;
    cursor: pointer;
}
.ai-eval-run--active[b-dkzfhre3pj] { border-color: var(--rs-primary); background: var(--rs-primary-subtle); }
.ai-eval-run-date[b-dkzfhre3pj] { font-weight: 700; min-width: 7.5rem; }
.ai-eval-run-rate[b-dkzfhre3pj] { font-weight: 800; font-variant-numeric: tabular-nums; min-width: 3.5rem; }
.ai-eval-run-rate--success[b-dkzfhre3pj] { color: var(--rs-success); }
.ai-eval-run-rate--warning[b-dkzfhre3pj] { color: var(--rs-warning); }
.ai-eval-run-rate--danger[b-dkzfhre3pj] { color: var(--rs-danger); }

@media (max-width: 1100px) {
    .ai-eval-kpis[b-dkzfhre3pj] { grid-template-columns: repeat(2, 1fr); }
    .ai-eval-grid[b-dkzfhre3pj] { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .ai-eval-kpis[b-dkzfhre3pj] { grid-template-columns: 1fr; }
}
/* /Pages/Ai/AiPlatformAdmin.razor.rz.scp.css */
.ai-admin[b-89tjb8bu77] { display: flex; flex-direction: column; gap: 1rem; max-width: 1400px; margin: 0 auto; }

.ai-admin-skeleton[b-89tjb8bu77] { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }

/* Hero */
.ai-admin-hero[b-89tjb8bu77] { display: grid; grid-template-columns: minmax(280px, 1.1fr) 2fr; gap: 1rem; }

.ai-admin-state[b-89tjb8bu77] {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: 1fr auto;
    gap: .75rem 1rem;
    padding: 1.1rem 1.25rem;
    border-radius: 16px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    box-shadow: var(--rs-shadow-sm);
}

.ai-admin-state--success[b-89tjb8bu77] { border-color: var(--rs-success); }
.ai-admin-state--warning[b-89tjb8bu77] { border-color: var(--rs-warning); }
.ai-admin-state--danger[b-89tjb8bu77] { border-color: var(--rs-danger); }

.ai-admin-state-icon[b-89tjb8bu77] { font-size: 2.4rem; color: var(--rs-on-surface-variant); }
.ai-admin-state--success .ai-admin-state-icon[b-89tjb8bu77] { color: var(--rs-success); }
.ai-admin-state--warning .ai-admin-state-icon[b-89tjb8bu77] { color: var(--rs-warning); }
.ai-admin-state--danger .ai-admin-state-icon[b-89tjb8bu77] { color: var(--rs-danger); }

.ai-admin-state-label[b-89tjb8bu77] { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rs-on-surface-muted); }
.ai-admin-state-value[b-89tjb8bu77] { font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; }
.ai-admin-state-summary[b-89tjb8bu77] { font-size: .86rem; color: var(--rs-on-surface-variant); margin-top: .2rem; }
.ai-admin-state-meta[b-89tjb8bu77] { font-size: .72rem; color: var(--rs-on-surface-muted); margin-top: .35rem; }
.ai-admin-state-actions[b-89tjb8bu77] { grid-column: 1 / -1; display: flex; gap: .5rem; flex-wrap: wrap; }

.ai-admin-kpis[b-89tjb8bu77] { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }

.ai-kpi[b-89tjb8bu77] {
    display: flex; align-items: center; gap: .75rem;
    padding: .85rem 1rem;
    border-radius: 14px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
}
.ai-kpi > .material-icons-round[b-89tjb8bu77] {
    width: 40px; height: 40px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: var(--rs-primary-subtle); color: var(--rs-primary-text);
    font-size: 1.35rem; flex-shrink: 0;
}
.ai-kpi > div[b-89tjb8bu77] { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ai-kpi-value[b-89tjb8bu77] { font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.ai-kpi-value small[b-89tjb8bu77] { font-size: .8rem; font-weight: 600; opacity: .7; }
.ai-kpi-label[b-89tjb8bu77] { font-size: .74rem; color: var(--rs-on-surface-muted); }
.ai-kpi--warning > .material-icons-round[b-89tjb8bu77] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.ai-kpi--danger > .material-icons-round[b-89tjb8bu77] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ai-kpi-bar[b-89tjb8bu77] { height: 5px; border-radius: 3px; background: var(--rs-surface-container-high); margin-top: .35rem; overflow: hidden; }
.ai-kpi-bar-fill[b-89tjb8bu77] { height: 100%; background: var(--rs-primary); border-radius: 3px; }
.ai-kpi--warning .ai-kpi-bar-fill[b-89tjb8bu77] { background: var(--rs-warning); }
.ai-kpi--danger .ai-kpi-bar-fill[b-89tjb8bu77] { background: var(--rs-danger); }

/* Tarjetas */
.ai-admin-card[b-89tjb8bu77] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 16px;
    padding: 1rem 1.15rem 1.15rem;
    display: flex; flex-direction: column; gap: .75rem;
}
.ai-admin-card-header[b-89tjb8bu77] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.ai-admin-card-header h2[b-89tjb8bu77] { margin: 0; font-size: 1rem; font-weight: 800; display: inline-flex; align-items: center; gap: .4rem; }
.ai-admin-card-header h2 .material-icons-round[b-89tjb8bu77] { font-size: 1.15rem; color: var(--rs-primary-text); }
.ai-admin-card-hint[b-89tjb8bu77] { font-size: .78rem; color: var(--rs-on-surface-muted); }
.ai-admin-two[b-89tjb8bu77] { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ai-admin-inline-actions[b-89tjb8bu77] { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.ai-muted[b-89tjb8bu77] { color: var(--rs-on-surface-muted); font-size: .8rem; }

/* Salud */
.ai-health-grid[b-89tjb8bu77] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .6rem; }
.ai-health-item[b-89tjb8bu77] {
    display: flex; align-items: flex-start; gap: .6rem;
    padding: .65rem .8rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
}
.ai-health-dot[b-89tjb8bu77] { width: 10px; height: 10px; border-radius: 50%; margin-top: .35rem; flex-shrink: 0; background: var(--rs-neutral); }
.ai-health-item--ok .ai-health-dot[b-89tjb8bu77] { background: var(--rs-success); }
.ai-health-item--degraded .ai-health-dot[b-89tjb8bu77] { background: var(--rs-warning); }
.ai-health-item--failed .ai-health-dot[b-89tjb8bu77] { background: var(--rs-danger); }
.ai-health-item--disabled .ai-health-dot[b-89tjb8bu77] { background: var(--rs-neutral); }
.ai-health-text[b-89tjb8bu77] { flex: 1; min-width: 0; }
.ai-health-label[b-89tjb8bu77] { font-weight: 700; font-size: .86rem; }
.ai-health-detail[b-89tjb8bu77] { font-size: .76rem; color: var(--rs-on-surface-variant); }
.ai-health-status[b-89tjb8bu77] { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--rs-on-surface-muted); }
.ai-health-item--ok .ai-health-status[b-89tjb8bu77] { color: var(--rs-success); }
.ai-health-item--degraded .ai-health-status[b-89tjb8bu77] { color: var(--rs-warning); }
.ai-health-item--failed .ai-health-status[b-89tjb8bu77] { color: var(--rs-danger); }

/* Valoraciones */
.ai-feedback-empty[b-89tjb8bu77] {
    display: flex; align-items: flex-start; gap: .75rem;
    padding: .85rem 1rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline-variant);
}
.ai-feedback-empty > .material-icons-round[b-89tjb8bu77] { font-size: 1.6rem; color: var(--rs-on-surface-muted); }

.ai-feedback-kpis[b-89tjb8bu77] { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.ai-feedback-kpi[b-89tjb8bu77] {
    display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .65rem; align-items: center;
    padding: .7rem .9rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
}
.ai-feedback-kpi .ai-feedback-kpi-icon[b-89tjb8bu77] {
    grid-row: 1 / span 2;
    width: 36px; height: 36px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle);
    font-size: 1.2rem;
}
.ai-feedback-kpi .ai-feedback-kpi-icon--up[b-89tjb8bu77] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.ai-feedback-kpi .ai-feedback-kpi-icon--down[b-89tjb8bu77] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ai-feedback-kpi--success[b-89tjb8bu77] { border-color: var(--rs-success); }
.ai-feedback-kpi--warning[b-89tjb8bu77] { border-color: var(--rs-warning); }
.ai-feedback-kpi--danger[b-89tjb8bu77] { border-color: var(--rs-danger); }

.ai-feedback-block[b-89tjb8bu77] { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.ai-feedback-block h3[b-89tjb8bu77] { margin: 0; font-size: .86rem; font-weight: 800; }
.ai-feedback-block p[b-89tjb8bu77] { margin: 0; }

.ai-feedback-reasons[b-89tjb8bu77] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.ai-feedback-reasons li[b-89tjb8bu77] { display: grid; grid-template-columns: minmax(140px, 1fr) 2fr auto; gap: .6rem; align-items: center; font-size: .8rem; }
.ai-feedback-reason-bar[b-89tjb8bu77] { height: 8px; border-radius: 4px; background: var(--rs-surface-container-high); overflow: hidden; }
.ai-feedback-reason-bar > span[b-89tjb8bu77] { display: block; height: 100%; background: var(--rs-danger); border-radius: 4px; }
.ai-feedback-reason-count[b-89tjb8bu77] { font-weight: 700; min-width: 2ch; text-align: right; }

.ai-feedback-modules[b-89tjb8bu77] { border-collapse: collapse; width: 100%; font-size: .8rem; }
.ai-feedback-modules th[b-89tjb8bu77] { text-align: left; font-size: .72rem; color: var(--rs-on-surface-muted); padding: .25rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); }
.ai-feedback-modules td[b-89tjb8bu77] { padding: .3rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); }
.ai-feedback-modules th:not(:first-child)[b-89tjb8bu77], .ai-feedback-modules td:not(:first-child)[b-89tjb8bu77] { text-align: right; width: 60px; }
.ai-feedback-modules-down[b-89tjb8bu77] { color: var(--rs-danger); font-weight: 700; }

.ai-feedback-list[b-89tjb8bu77] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.ai-feedback-item[b-89tjb8bu77] {
    display: flex; flex-direction: column; gap: .35rem;
    padding: .7rem .85rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 3px solid var(--rs-danger);
}
.ai-feedback-item-head[b-89tjb8bu77] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem; }
.ai-feedback-item-reason[b-89tjb8bu77] {
    font-size: .72rem; font-weight: 700;
    padding: .1rem .5rem; border-radius: 999px;
    background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle);
}
.ai-feedback-item-ref[b-89tjb8bu77] { margin-left: auto; }
.ai-feedback-item-question[b-89tjb8bu77] {
    margin: 0; padding: .3rem .7rem;
    border-left: 3px solid var(--rs-outline);
    font-size: .86rem;
    color: var(--rs-on-surface);
    white-space: pre-wrap; word-break: break-word;
}
.ai-feedback-item-comment[b-89tjb8bu77] { display: flex; gap: .35rem; align-items: flex-start; font-size: .8rem; color: var(--rs-on-surface-variant); }
.ai-feedback-item-comment .material-icons-round[b-89tjb8bu77] { font-size: .95rem; margin-top: .1rem; }
.ai-feedback-item-meta[b-89tjb8bu77] { display: flex; flex-wrap: wrap; gap: .3rem; }
.ai-feedback-item-ungrounded[b-89tjb8bu77] { color: var(--rs-warning); }
.ai-feedback-item-case summary[b-89tjb8bu77] { cursor: pointer; font-size: .78rem; font-weight: 600; color: var(--rs-primary-text); }
.ai-feedback-item-case pre[b-89tjb8bu77] {
    margin: .4rem 0;
    padding: .5rem .65rem;
    border-radius: 8px;
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
    font-size: .72rem;
    white-space: pre-wrap; word-break: break-all;
    user-select: all;
}

@media (max-width: 1100px) {
    .ai-admin-hero[b-89tjb8bu77] { grid-template-columns: 1fr; }
    .ai-admin-two[b-89tjb8bu77] { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .ai-admin-kpis[b-89tjb8bu77] { grid-template-columns: 1fr 1fr; }
    .ai-feedback-kpis[b-89tjb8bu77] { grid-template-columns: 1fr; }
    .ai-feedback-reasons li[b-89tjb8bu77] { grid-template-columns: 1fr auto; }
    .ai-feedback-reason-bar[b-89tjb8bu77] { display: none; }
}
/* /Pages/Ai/AiTurnTelemetrySection.razor.rz.scp.css */
/* Sección «Turnos» de /admin/ia. Solo tokens --rs-* (railsider-theme.css). */

.ai-tel-header[b-d9zpxxbjqv] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.ai-tel-header h2[b-d9zpxxbjqv] { margin: 0; font-size: 1rem; font-weight: 800; display: inline-flex; align-items: center; gap: .4rem; }
.ai-tel-header h2 .material-icons-round[b-d9zpxxbjqv] { font-size: 1.15rem; color: var(--rs-primary-text); }
.ai-tel-hint[b-d9zpxxbjqv] { font-size: .78rem; color: var(--rs-on-surface-muted); flex: 1 1 280px; }
.ai-tel-actions[b-d9zpxxbjqv] { display: flex; align-items: center; gap: .5rem; margin-left: auto; }

.ai-tel-chips[b-d9zpxxbjqv] { display: inline-flex; gap: .35rem; }
.ai-tel-chip[b-d9zpxxbjqv] {
    display: inline-flex; align-items: center; gap: .35rem;
    padding: .2rem .7rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline);
    background: transparent;
    color: var(--rs-on-surface);
    font-size: .78rem; font-weight: 600;
    cursor: pointer;
}
.ai-tel-chip--active[b-d9zpxxbjqv] { background: var(--rs-primary); border-color: var(--rs-primary); color: var(--rs-on-primary); }
.ai-tel-chip-count[b-d9zpxxbjqv] { font-variant-numeric: tabular-nums; opacity: .8; }
.ai-tel-icon-button[b-d9zpxxbjqv] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    background: transparent; color: var(--rs-on-surface-variant);
    cursor: pointer;
}
.ai-tel-icon-button .material-icons-round[b-d9zpxxbjqv] { font-size: 1.1rem; }
.ai-tel-chip:focus-visible[b-d9zpxxbjqv], .ai-tel-icon-button:focus-visible[b-d9zpxxbjqv], .ai-tel-link:focus-visible[b-d9zpxxbjqv] { outline: 2px solid var(--rs-primary); outline-offset: 2px; }

.ai-tel-muted[b-d9zpxxbjqv] { color: var(--rs-on-surface-muted); font-size: .8rem; }

.ai-tel-empty[b-d9zpxxbjqv] {
    display: flex; align-items: flex-start; gap: .75rem; flex-wrap: wrap;
    padding: .85rem 1rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline-variant);
}
.ai-tel-empty > .material-icons-round[b-d9zpxxbjqv] { font-size: 1.6rem; color: var(--rs-on-surface-muted); }
.ai-tel-empty > div[b-d9zpxxbjqv] { flex: 1 1 240px; }
.ai-tel-link[b-d9zpxxbjqv] {
    border: none; background: transparent; padding: 0;
    color: var(--rs-primary-text); font-weight: 700; font-size: .8rem;
    cursor: pointer; text-decoration: underline;
}

.ai-tel-kpis[b-d9zpxxbjqv] { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.ai-tel-kpi[b-d9zpxxbjqv] {
    display: flex; flex-direction: column; gap: .15rem;
    padding: .7rem .9rem;
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
    min-width: 0;
}
.ai-tel-kpi--success[b-d9zpxxbjqv] { border-left-color: var(--rs-success); }
.ai-tel-kpi--warning[b-d9zpxxbjqv] { border-left-color: var(--rs-warning); }
.ai-tel-kpi--danger[b-d9zpxxbjqv] { border-left-color: var(--rs-danger); }
.ai-tel-kpi-label[b-d9zpxxbjqv] { font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rs-on-surface-muted); }
.ai-tel-kpi-value[b-d9zpxxbjqv] { font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.ai-tel-kpi-value small[b-d9zpxxbjqv] { font-size: .85rem; font-weight: 600; color: var(--rs-on-surface-variant); }
.ai-tel-kpi-detail[b-d9zpxxbjqv] { font-size: .74rem; color: var(--rs-on-surface-variant); }

.ai-tel-warning[b-d9zpxxbjqv] {
    display: flex; align-items: center; gap: .5rem;
    padding: .5rem .8rem;
    border-radius: 10px;
    background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle);
    font-size: .8rem;
}
.ai-tel-warning .material-icons-round[b-d9zpxxbjqv] { font-size: 1.1rem; }

.ai-tel-grid[b-d9zpxxbjqv] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ai-tel-block[b-d9zpxxbjqv] { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.ai-tel-block h3[b-d9zpxxbjqv] { margin: 0; font-size: .86rem; font-weight: 800; }

.ai-tel-table[b-d9zpxxbjqv] { border-collapse: collapse; width: 100%; font-size: .8rem; }
.ai-tel-table th[b-d9zpxxbjqv] { text-align: left; font-size: .72rem; color: var(--rs-on-surface-muted); padding: .25rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); }
.ai-tel-table td[b-d9zpxxbjqv] { padding: .3rem .4rem; border-bottom: 1px solid var(--rs-outline-variant); font-variant-numeric: tabular-nums; }
.ai-tel-table th:not(:first-child)[b-d9zpxxbjqv], .ai-tel-table td:not(:first-child)[b-d9zpxxbjqv] { text-align: right; width: 64px; }
.ai-tel-table code[b-d9zpxxbjqv] { font-size: .7rem; color: var(--rs-on-surface-muted); }
.ai-tel-bad[b-d9zpxxbjqv] { color: var(--rs-danger); font-weight: 700; }

.ai-tel-bars[b-d9zpxxbjqv], .ai-tel-keys[b-d9zpxxbjqv] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.ai-tel-bars li[b-d9zpxxbjqv] { display: grid; grid-template-columns: minmax(110px, 1fr) 1.4fr auto; gap: .6rem; align-items: center; font-size: .8rem; }
.ai-tel-bar[b-d9zpxxbjqv] { height: 8px; border-radius: 4px; background: var(--rs-surface-container-high); overflow: hidden; }
.ai-tel-bar > span[b-d9zpxxbjqv] { display: block; height: 100%; background: var(--rs-warning); border-radius: 4px; }
.ai-tel-bar-count[b-d9zpxxbjqv] { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.ai-tel-bar-count small[b-d9zpxxbjqv] { font-weight: 500; color: var(--rs-on-surface-muted); }
.ai-tel-keys li[b-d9zpxxbjqv] { display: flex; justify-content: space-between; gap: .6rem; font-size: .8rem; padding: .2rem 0; border-bottom: 1px solid var(--rs-outline-variant); }

@media (max-width: 1100px) {
    .ai-tel-kpis[b-d9zpxxbjqv] { grid-template-columns: repeat(2, 1fr); }
    .ai-tel-grid[b-d9zpxxbjqv] { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .ai-tel-kpis[b-d9zpxxbjqv] { grid-template-columns: 1fr; }
    .ai-tel-actions[b-d9zpxxbjqv] { margin-left: 0; }
    .ai-tel-bars li[b-d9zpxxbjqv] { grid-template-columns: 1fr auto; }
    .ai-tel-bar[b-d9zpxxbjqv] { display: none; }
}
/* /Pages/Dashboards/Dashboard.razor.rz.scp.css */
/* Railsider Bento Dashboard */
.rs-dashboard[b-v4tgti1gka] {
    --rs-primary: #420134;
    --rs-primary-container: #5d1a4b;
    --rs-secondary: #92407d;
    --rs-secondary-container: #fd9cdf;
    --rs-on-secondary-container: #7b2c69;
    --rs-surface: #f9f9fb;
    --rs-surface-container: #eeeef0;
    --rs-surface-container-high: #e8e8ea;
    --rs-surface-container-low: #f3f3f5;
    --rs-outline-variant: #d5c1ca;
    --rs-on-surface: #1a1c1d;
    --rs-on-surface-variant: #51434a;
    --rs-error: #ba1a1a;
    --rs-error-container: #ffdad6;
    --rs-primary-fixed-dim: #ffade0;

    padding: 1.5rem;
    background: var(--rs-surface);
    min-height: calc(100vh - 48px);
}

.rs-dashboard-hero[b-v4tgti1gka] {
    max-width: 72rem;
    margin: 0 auto 2.5rem;
}

.rs-dashboard-hero h1[b-v4tgti1gka] {
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--rs-primary-text);
    margin: 0 0 0.5rem;
}

.rs-dashboard-hero p[b-v4tgti1gka] {
    font-size: 0.875rem;
    color: var(--rs-on-surface-variant);
    margin: 0 0 2rem;
}

.rs-search-bar[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    padding: 0.35rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    gap: 0.5rem;
}

.rs-search-input-wrap[b-v4tgti1gka] {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 0 1rem;
    gap: 0.75rem;
}

.rs-search-input-wrap .material-icons-round[b-v4tgti1gka] {
    color: var(--rs-on-surface-variant);
    font-size: 20px;
}

.rs-search-input[b-v4tgti1gka] {
    width: 100%;
    border: none;
    outline: none;
    font-size: 0.875rem;
    background: transparent;
    color: var(--rs-on-surface);
}

.rs-search-input[b-v4tgti1gka]::placeholder {
    color: var(--rs-outline-variant);
}

.rs-search-btn[b-v4tgti1gka] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border: none;
    border-radius: 0.25rem;
    padding: 0.5rem 1.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: opacity 0.15s;
    white-space: nowrap;
}

.rs-search-btn:hover[b-v4tgti1gka] {
    opacity: 0.9;
}

.rs-bento-grid[b-v4tgti1gka] {
    max-width: 72rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: minmax(150px, auto);
    gap: 1rem;
    /* Rellena los huecos que dejan las tarjetas que ocupan 2 columnas (evita celdas vacías). */
    grid-auto-flow: row dense;
}

.rs-bento-large[b-v4tgti1gka] {
    grid-column: span 2;
    grid-row: span 1;
}

.rs-bento-span2[b-v4tgti1gka] {
    grid-column: span 2;
}

.rs-bento-card[b-v4tgti1gka] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.rs-bento-primary[b-v4tgti1gka] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    min-height: 150px;
    position: relative;
    transition: transform 0.2s, box-shadow 0.2s;
}

.rs-bento-primary:hover[b-v4tgti1gka] {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(66, 1, 52, 0.25);
}

.rs-bento-tag[b-v4tgti1gka] {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    background: rgba(255, 255, 255, 0.1);
    color: #d783b9;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    margin-bottom: 0.5rem;
}

.rs-bento-primary h2[b-v4tgti1gka] {
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 0.35rem;
}

.rs-bento-primary p[b-v4tgti1gka] {
    font-size: 0.8125rem;
    opacity: 0.8;
    max-width: 20rem;
    margin: 0;
    line-height: 1.4;
}

.rs-bento-primary-footer[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.75rem;
}

.rs-bento-primary-footer .material-icons-round.train-icon[b-v4tgti1gka] {
    font-size: 44px;
    opacity: 0.4;
    transition: transform 0.5s;
}

.rs-bento-primary:hover .train-icon[b-v4tgti1gka] {
    transform: scale(1.1);
}

.rs-bento-arrow[b-v4tgti1gka] {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--rs-surface);
    color: var(--rs-primary-text);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.rs-bento-primary:hover .rs-bento-arrow[b-v4tgti1gka] {
    transform: translateX(4px);
}

.rs-stat-card[b-v4tgti1gka] {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Tarjeta de salud de vagones (clicable) */
.rs-health-card[b-v4tgti1gka] {
    /* Agrupar el contenido arriba (en vez de space-between) para que no quede un hueco
       en medio cuando la tarjeta se estira a la altura de su vecina más alta. */
    justify-content: flex-start;
    gap: 0.85rem;
}

.rs-health-card:hover[b-v4tgti1gka] {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    transform: translateY(-2px);
    transition: transform 0.15s, box-shadow 0.15s;
}

/* Titular positivo: % de GPS operativos */
.rs-health-headline[b-v4tgti1gka] {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
    margin-top: 0.15rem;
}

.rs-health-pct[b-v4tgti1gka] {
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

    .rs-health-pct.rs-health-ok[b-v4tgti1gka] { color: var(--rs-success); }
    .rs-health-pct.rs-health-warn[b-v4tgti1gka] { color: var(--rs-warning); }
    .rs-health-pct.rs-health-bad[b-v4tgti1gka] { color: var(--rs-danger); }

.rs-health-headline-sub[b-v4tgti1gka] {
    display: flex;
    flex-direction: column;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.rs-health-headline-meta[b-v4tgti1gka] {
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--rs-on-surface-muted);
}

.rs-health-bar[b-v4tgti1gka] {
    margin-top: 0.5rem;
    height: 6px;
    border-radius: 999px;
    background: var(--rs-surface-container);
    overflow: hidden;
}

    .rs-health-bar > span[b-v4tgti1gka] {
        display: block;
        height: 100%;
        border-radius: 999px;
        transition: width 0.4s ease;
    }

    .rs-health-bar > span.rs-health-ok[b-v4tgti1gka] { background: var(--rs-success); }
    .rs-health-bar > span.rs-health-warn[b-v4tgti1gka] { background: var(--rs-warning); }
    .rs-health-bar > span.rs-health-bad[b-v4tgti1gka] { background: var(--rs-danger); }

.rs-health-chips[b-v4tgti1gka] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.6rem;
}

.rs-health-chip[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    border-radius: 999px;
    padding: 0.2rem 0.6rem;
    font-size: 0.72rem;
    color: var(--rs-on-surface);
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

    .rs-health-chip:hover[b-v4tgti1gka] {
        background: var(--rs-primary-subtle);
        border-color: var(--rs-primary);
        color: var(--rs-primary-text);
    }

    .rs-health-chip b[b-v4tgti1gka] { color: var(--rs-on-surface); }
    .rs-health-chip:hover b[b-v4tgti1gka] { color: var(--rs-primary-text); }
    .rs-health-chip .material-icons-round[b-v4tgti1gka] { font-size: 0.95rem; }

.rs-stat-label[b-v4tgti1gka] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-secondary);
    display: block;
    margin-bottom: 0.25rem;
}

.rs-stat-value[b-v4tgti1gka] {
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--rs-primary-text);
}

.rs-stat-meta[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
}

.rs-stat-meta.positive[b-v4tgti1gka] { color: var(--rs-on-success-subtle); }
.rs-stat-meta.neutral[b-v4tgti1gka] { color: var(--rs-on-surface-variant); }
.rs-stat-meta.warning[b-v4tgti1gka] { color: var(--rs-on-warning-subtle); }

.rs-stat-meta .material-icons-round[b-v4tgti1gka] {
    font-size: 16px;
}

.rs-panel-header[b-v4tgti1gka] {
    padding: 1rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rs-panel-title[b-v4tgti1gka] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-primary-text);
}

.rs-panel-link[b-v4tgti1gka] {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--rs-secondary);
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
}

.rs-panel-link:hover[b-v4tgti1gka] {
    text-decoration: underline;
}

.rs-updates-list[b-v4tgti1gka] {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-height: 280px;
    overflow-y: auto;
}

.rs-updates-list[b-v4tgti1gka]::-webkit-scrollbar { width: 4px; }
.rs-updates-list[b-v4tgti1gka]::-webkit-scrollbar-thumb { background: var(--rs-outline-variant); border-radius: 10px; }

.rs-update-row[b-v4tgti1gka] {
    padding: 0.75rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.125rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    transition: border-color 0.15s;
}

.rs-update-row:hover[b-v4tgti1gka] {
    border-color: var(--rs-secondary);
}

.rs-update-plate[b-v4tgti1gka] {
    font-family: 'IBM Plex Mono', 'Consolas', monospace;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--rs-primary-text);
}

.rs-update-location[b-v4tgti1gka] {
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-variant);
    margin-top: 0.15rem;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rs-update-right[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rs-badge[b-v4tgti1gka] {
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.125rem 0.5rem;
    border-radius: 0.125rem;
}

.rs-badge-stopped[b-v4tgti1gka] {
    color: var(--rs-error);
    background: var(--rs-error-container);
}

.rs-badge-moving[b-v4tgti1gka] {
    color: var(--rs-on-success-subtle);
    background: var(--rs-success-subtle);
}

.rs-map-card[b-v4tgti1gka] {
    position: relative;
    cursor: pointer;
    min-height: 200px;
    overflow: hidden;
}

.rs-map-canvas[b-v4tgti1gka] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 200px;
    z-index: 0;
}

.rs-map-bg[b-v4tgti1gka] {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(135deg, #e8f0e8 0%, #d4e4d4 30%, #c8d8c0 60%, #b8c8b0 100%);
}

.rs-map-overlay[b-v4tgti1gka] {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to top, rgba(66, 1, 52, 0.8), transparent 55%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    pointer-events: none;
}

.rs-map-overlay .rs-panel-title[b-v4tgti1gka] {
    color: var(--rs-on-primary);
    margin-bottom: 0.25rem;
}

.rs-map-overlay h3[b-v4tgti1gka] {
    color: var(--rs-on-primary);
    font-weight: 700;
    margin: 0;
    font-size: 1rem;
}

.rs-map-zones[b-v4tgti1gka] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 0.75rem;
}

.rs-map-zone[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.625rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.8);
}

.rs-zone-dot[b-v4tgti1gka] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.rs-map-icon-badge[b-v4tgti1gka] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    background: var(--rs-surface);
    backdrop-filter: blur(4px);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.25rem;
    padding: 0.5rem;
    color: var(--rs-primary-text);
}

.rs-action-card[b-v4tgti1gka] {
    padding: 1.5rem;
    background: var(--rs-surface-container-high);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.rs-action-card:hover[b-v4tgti1gka] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

.rs-action-card .material-icons-round[b-v4tgti1gka] {
    color: var(--rs-primary-text);
    transition: color 0.2s;
}

.rs-action-card:hover .material-icons-round[b-v4tgti1gka] {
    color: var(--rs-on-primary);
}

.rs-action-card h4[b-v4tgti1gka] {
    font-weight: 700;
    font-size: 0.875rem;
    margin: 0 0 0.25rem;
}

.rs-action-card p[b-v4tgti1gka] {
    font-size: 0.75rem;
    opacity: 0.7;
    margin: 0;
}


/* Skeletons */
.rs-skeleton[b-v4tgti1gka] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 37%, var(--rs-surface-container) 63%);
    background-size: 400% 100%;
    animation: rs-shimmer-b-v4tgti1gka 1.2s ease-in-out infinite;
    border-radius: 0.25rem;
}

.rs-skeleton-value[b-v4tgti1gka] {
    height: 2rem;
    width: 4rem;
}

.rs-skeleton-label[b-v4tgti1gka] {
    height: 0.75rem;
    width: 6rem;
    margin-top: 0.5rem;
}

.rs-skeleton-row[b-v4tgti1gka] {
    height: 3.5rem;
    width: 100%;
}

.rs-skeleton-map[b-v4tgti1gka] {
    height: 200px;
    width: 100%;
}

@keyframes rs-shimmer-b-v4tgti1gka {
    0% { background-position: 100% 0; }
    100% { background-position: 0 0; }
}

.rs-empty-msg[b-v4tgti1gka] {
    padding: 1.5rem;
    text-align: center;
    color: var(--rs-on-surface-variant);
    font-size: 0.875rem;
}

@media (max-width: 1024px) {
    .rs-bento-grid[b-v4tgti1gka] {
        grid-template-columns: repeat(2, 1fr);
    }

    .rs-bento-large[b-v4tgti1gka] {
        grid-column: span 2;
        grid-row: span 1;
    }
}

@media (max-width: 640px) {
    .rs-dashboard[b-v4tgti1gka] {
        padding: 1rem;
    }

    .rs-bento-grid[b-v4tgti1gka] {
        grid-template-columns: 1fr;
    }

    .rs-bento-large[b-v4tgti1gka],
    .rs-bento-span2[b-v4tgti1gka] {
        grid-column: span 1;
    }

    .rs-search-bar[b-v4tgti1gka] {
        flex-direction: column;
        align-items: stretch;
    }

    .rs-search-btn[b-v4tgti1gka] {
        width: 100%;
        padding: 0.75rem;
    }
}

/* ===== Sección Lanzaderas ===== */
/* ── Lanzaderas: barra compacta colapsable ───────────────── */

.rs-lz-section[b-v4tgti1gka] {
    /* Tarjeta a todo el ancho: primera fila del bento (ocupa todas las columnas del grid). */
    grid-column: 1 / -1;
    border-radius: 0.5rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.rs-lz-bar[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    flex-wrap: wrap;
}

.rs-lz-bar-toggle[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem 0;
    color: inherit;
}

.rs-lz-bar-icon[b-v4tgti1gka] {
    font-size: 1.4rem;
    color: var(--rs-primary-text);
}

.rs-lz-bar-title[b-v4tgti1gka] {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--rs-on-surface);
}

.rs-lz-bar-chips[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0.25rem;
}

.rs-lz-chip[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.rs-lz-chip-danger[b-v4tgti1gka] { background: var(--rs-danger-subtle); border-color: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.rs-lz-chip-warn[b-v4tgti1gka]   { background: var(--rs-warning-subtle); border-color: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

.rs-lz-chevron[b-v4tgti1gka] {
    font-size: 1.3rem;
    color: var(--rs-on-surface-muted);
    transition: transform .2s;
}

.rs-lz-bar-actions[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rs-lz-arrow[b-v4tgti1gka] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s, color .15s;
}

.rs-lz-arrow:hover[b-v4tgti1gka] { background: var(--rs-secondary-container, #fd9cdf); color: var(--rs-primary-text); }

.rs-lz-weeklabel[b-v4tgti1gka] {
    font-weight: 700;
    font-size: 0.78rem;
    color: var(--rs-on-surface);
    min-width: 150px;
    text-align: center;
}

.rs-lz-today[b-v4tgti1gka] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.75rem;
    height: 30px;
    padding: 0 0.65rem;
    border-radius: 8px;
    cursor: pointer;
}

.rs-lz-today:hover[b-v4tgti1gka] { background: var(--rs-secondary-container, #fd9cdf); color: var(--rs-primary-text); }

.rs-lz-all[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-weight: 700;
    font-size: 0.78rem;
    color: var(--rs-primary-text);
    text-decoration: none;
    padding: 0 0.4rem;
}

.rs-lz-all .material-icons-round[b-v4tgti1gka] { font-size: 0.95rem; }

/* ── Detalle expandido ───────────────────────────────────── */

.rs-lz-detail[b-v4tgti1gka] {
    padding: 0.75rem 1rem 1rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.rs-lz-grid[b-v4tgti1gka] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 0.85rem;
}

.rs-lz-empty[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    justify-content: center;
    padding: 1.5rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.85rem;
}

.rs-lz-empty .material-icons-round[b-v4tgti1gka] { font-size: 1.4rem; opacity: 0.5; }
.rs-lz-empty a[b-v4tgti1gka] { color: var(--rs-primary-text); font-weight: 700; }

/* ── Lanzaderas: vista compacta (misma idea que la del índice) ── */

.rs-lz-compact[b-v4tgti1gka] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    overflow: hidden;
}

.rs-lzc-header[b-v4tgti1gka],
.rs-lzc-row[b-v4tgti1gka] {
    display: grid;
    grid-template-columns: minmax(220px, 2.2fr) minmax(150px, 1.4fr) minmax(170px, 1.3fr) 64px 64px 32px;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.8rem;
}

.rs-lzc-header[b-v4tgti1gka] {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
}

.rs-lzc-row[b-v4tgti1gka] {
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--rs-outline-variant);
    transition: background 0.12s;
    animation: rs-lzc-in-b-v4tgti1gka 0.25s ease-out both;
}

@keyframes rs-lzc-in-b-v4tgti1gka {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: none; }
}

.rs-lzc-row:last-child[b-v4tgti1gka] { border-bottom: none; }
.rs-lzc-row:hover[b-v4tgti1gka] { background: var(--rs-surface); }
.rs-lzc-row:hover .rs-lzc-go[b-v4tgti1gka] { color: var(--rs-primary-text); transform: translateX(2px); }

.rs-lzc-name[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.rs-lzc-dot[b-v4tgti1gka] {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(0, 0, 0, 0.08);
}

.rs-lzc-name-block[b-v4tgti1gka] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rs-lzc-title[b-v4tgti1gka] {
    font-weight: 800;
    font-size: 0.86rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rs-lzc-sub[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.rs-lzc-days[b-v4tgti1gka] { display: inline-flex; gap: 2px; }

.rs-lzc-day[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 4px;
    font-size: 0.6rem;
    font-weight: 800;
    color: var(--rs-on-surface-disabled);
    background: var(--rs-surface-container);
}

.rs-lzc-day.on[b-v4tgti1gka] { color: var(--rs-on-primary); }
.rs-lzc-day.today[b-v4tgti1gka] { box-shadow: 0 0 0 2px #fff, 0 0 0 3px #f59e0b; }

.rs-lzc-route[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rs-lzc-route .material-icons-round[b-v4tgti1gka] { font-size: 0.85rem; }

.rs-lzc-company[b-v4tgti1gka] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    min-width: 0;
}

.rs-lzc-tag[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.rs-lzc-tag-loco[b-v4tgti1gka] { background: var(--rs-cyan-subtle); color: var(--rs-on-cyan-subtle); }
.rs-lzc-tag .material-icons-round[b-v4tgti1gka] { font-size: 0.8rem; }

.rs-lzc-status[b-v4tgti1gka] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.rs-lzc-badge[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    white-space: nowrap;
}

.rs-lzc-badge .material-icons-round[b-v4tgti1gka] { font-size: 0.85rem; }
.rs-lzc-badge.ok[b-v4tgti1gka]        { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.rs-lzc-badge.draft[b-v4tgti1gka]     { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.rs-lzc-badge.inherited[b-v4tgti1gka] { background: var(--rs-indigo-subtle); color: var(--rs-on-indigo-subtle); }
.rs-lzc-badge.none[b-v4tgti1gka]      { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }

.rs-lzc-alert[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
}

.rs-lzc-alert .material-icons-round[b-v4tgti1gka] { font-size: 0.85rem; }
.rs-lzc-alert.danger[b-v4tgti1gka] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.rs-lzc-alert.warn[b-v4tgti1gka]   { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

.rs-lzc-num[b-v4tgti1gka] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--rs-on-surface);
}

.rs-lzc-num .material-icons-round[b-v4tgti1gka] { font-size: 0.95rem; color: var(--rs-on-surface-muted); }
.rs-lzc-header .rs-lzc-num[b-v4tgti1gka] { justify-content: center; }

.rs-lzc-go[b-v4tgti1gka] {
    display: inline-flex;
    justify-content: flex-end;
    color: var(--rs-on-surface-disabled);
    transition: color 0.12s, transform 0.12s;
}

@media (max-width: 900px) {
    .rs-lzc-header[b-v4tgti1gka] { display: none; }

    .rs-lzc-row[b-v4tgti1gka] {
        grid-template-columns: 1fr auto auto;
        grid-template-areas:
            "name num1 go"
            "company num2 go"
            "status status status";
        row-gap: 0.3rem;
    }

    .rs-lzc-row .rs-lzc-name[b-v4tgti1gka]    { grid-area: name; }
    .rs-lzc-row .rs-lzc-company[b-v4tgti1gka] { grid-area: company; }
    .rs-lzc-row .rs-lzc-status[b-v4tgti1gka]  { grid-area: status; }
    .rs-lzc-row .rs-lzc-num:nth-of-type(4)[b-v4tgti1gka] { grid-area: num1; }
    .rs-lzc-row .rs-lzc-num:nth-of-type(5)[b-v4tgti1gka] { grid-area: num2; }
    .rs-lzc-row .rs-lzc-go[b-v4tgti1gka]      { grid-area: go; }
}

/* Modo oscuro: en lugar de repetir la paleta, se hereda la de :root
   (railsider-theme.css), que ya resuelve claro y oscuro. */
:root[data-theme="dark"] .rs-dashboard[b-v4tgti1gka] {
    --rs-primary: inherit;
    --rs-primary-container: inherit;
    --rs-secondary: inherit;
    --rs-secondary-container: inherit;
    --rs-on-secondary-container: inherit;
    --rs-surface: inherit;
    --rs-surface-container: inherit;
    --rs-surface-container-high: inherit;
    --rs-surface-container-low: inherit;
    --rs-outline-variant: inherit;
    --rs-on-surface: inherit;
    --rs-on-surface-variant: inherit;
    --rs-error: inherit;
    --rs-error-container: inherit;
    --rs-primary-fixed-dim: inherit;
}
/* /Pages/Feedback/FeedbackAdminIndex.razor.rz.scp.css */
/* ============================================
   FeedbackAdminIndex — Scoped CSS
   Design system aligned with Users.razor.css
   ============================================ */

/* Skeleton */
.skeleton[b-qn6v22uzng] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-qn6v22uzng 1.5s infinite;
    border-radius: 6px;
}

@keyframes skeleton-shimmer-b-qn6v22uzng {
    0%   { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.panel-fade-in[b-qn6v22uzng] {
    animation: panel-fade-in-b-qn6v22uzng 0.3s ease-out;
}

/* ===== Banner "sin responder" ===== */
.fb-pending-banner[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    text-align: left;
    cursor: pointer;
    margin-bottom: 1rem;
    padding: 0.7rem 1rem;
    border: 1px solid var(--rs-warning);
    border-left: 4px solid var(--rs-warning);
    border-radius: 10px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.9rem;
    transition: background 0.15s;
}

.fb-pending-banner:hover[b-qn6v22uzng] { background: var(--rs-warning-subtle); }
.fb-pending-banner .material-icons-round[b-qn6v22uzng] { font-size: 1.25rem; color: var(--rs-warning); }
.fb-pending-banner-text[b-qn6v22uzng] { flex: 1; }
.fb-pending-banner-text strong[b-qn6v22uzng] { font-weight: 800; }

.fb-pending-banner-cta[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-weight: 700;
    font-size: 0.82rem;
    white-space: nowrap;
}

.fb-pending-banner-cta .material-icons-round[b-qn6v22uzng] { font-size: 1.05rem; color: inherit; }

/* ===== Indicador de chat en el grid ===== */
.fb-chat-indicator[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rs-on-surface-muted);
}

.fb-chat-indicator .material-icons-round[b-qn6v22uzng] { font-size: 1.15rem; }

.fb-chat-indicator.awaiting[b-qn6v22uzng] {
    color: var(--rs-warning);
    animation: fb-chat-pulse-b-qn6v22uzng 1.8s ease-in-out infinite;
}

@keyframes fb-chat-pulse-b-qn6v22uzng {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.45; }
}

@keyframes panel-fade-in-b-qn6v22uzng {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ===== KPI ROWS ===== */
.fb-kpi-row[b-qn6v22uzng] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.fb-kpi-row + .fb-kpi-row[b-qn6v22uzng] {
    margin-bottom: 1.25rem;
}

.fb-kpi-card[b-qn6v22uzng] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border: none;
    border-left: 4px solid transparent;
    transition: box-shadow 0.2s, transform 0.15s;
    /* La mayoría son <button> (filtran al pulsar): heredar tipografía y alinear como la tarjeta original. */
    font: inherit;
    text-align: left;
    color: inherit;
    cursor: pointer;
}

.fb-kpi-card:hover[b-qn6v22uzng] {
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}

.fb-kpi-card.fb-kpi-static[b-qn6v22uzng] {
    cursor: default;
}

.fb-kpi-card.fb-kpi-static:hover[b-qn6v22uzng] {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transform: none;
}

/* Filtro aplicado desde la tarjeta */
.fb-kpi-card.active[b-qn6v22uzng] {
    outline: 2px solid var(--rs-primary);
    outline-offset: -2px;
    background: var(--rs-primary-subtle);
}

/* KPI color variants */
.kpi-total[b-qn6v22uzng]       { border-left-color: var(--rs-primary); }
.kpi-pendientes[b-qn6v22uzng]  { border-left-color: var(--rs-warning); }
.kpi-revision[b-qn6v22uzng]    { border-left-color: var(--rs-info); }
.kpi-resueltos[b-qn6v22uzng]   { border-left-color: var(--rs-success); }
.kpi-descartados[b-qn6v22uzng] { border-left-color: var(--rs-outline-strong); }
.kpi-criticos[b-qn6v22uzng]    { border-left-color: var(--rs-danger); }
.kpi-bugs[b-qn6v22uzng]        { border-left-color: var(--rs-danger); }
.kpi-sugerencias[b-qn6v22uzng] { border-left-color: var(--rs-info); }

.fb-kpi-icon[b-qn6v22uzng] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.kpi-total .fb-kpi-icon[b-qn6v22uzng]       { color: var(--rs-primary-text); background: var(--rs-primary-subtle); }
.kpi-pendientes .fb-kpi-icon[b-qn6v22uzng]  { color: var(--rs-on-warning-subtle); background: var(--rs-warning-subtle); }
.kpi-revision .fb-kpi-icon[b-qn6v22uzng]    { color: var(--rs-on-info-subtle); background: var(--rs-info-subtle); }
.kpi-resueltos .fb-kpi-icon[b-qn6v22uzng]   { color: var(--rs-on-success-subtle); background: var(--rs-success-subtle); }
.kpi-descartados .fb-kpi-icon[b-qn6v22uzng] { color: var(--rs-on-surface-variant); background: var(--rs-surface-container-low); }
.kpi-criticos .fb-kpi-icon[b-qn6v22uzng]    { color: var(--rs-on-danger-subtle); background: var(--rs-danger-subtle); }
.kpi-bugs .fb-kpi-icon[b-qn6v22uzng]        { color: var(--rs-on-danger-subtle); background: var(--rs-danger-subtle); }
.kpi-sugerencias .fb-kpi-icon[b-qn6v22uzng] { color: var(--rs-on-info-subtle); background: var(--rs-info-subtle); }

.fb-kpi-content[b-qn6v22uzng] {
    display: flex;
    flex-direction: column;
}

.fb-kpi-value[b-qn6v22uzng] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    line-height: 1.1;
}

.fb-kpi-label[b-qn6v22uzng] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

/* Skeleton KPIs */
.skeleton-kpi[b-qn6v22uzng] {
    height: 72px;
    border-radius: 10px;
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* ===== ERROR BANNER ===== */
.fb-error-banner[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--rs-danger-subtle);
    border: 1px solid var(--rs-danger-subtle);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    margin-bottom: 1.25rem;
    color: var(--rs-on-danger-subtle);
    font-size: 0.8rem;
    font-weight: 500;
    animation: shake-b-qn6v22uzng 0.3s ease;
}

@keyframes shake-b-qn6v22uzng {
    0%, 100% { transform: translateX(0); }
    25%      { transform: translateX(-4px); }
    75%      { transform: translateX(4px); }
}

.fb-error-icon[b-qn6v22uzng] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ===== SEARCH / FILTER BAR ===== */
.fb-search-bar[b-qn6v22uzng] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 0.875rem 1.25rem;
    margin-bottom: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Fila superior: búsqueda (siempre visible) + botón Filtros + Excel/Actualizar. */
.fb-search-row[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.search-input-wrapper[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    min-width: 220px;
}

.search-icon[b-qn6v22uzng] {
    color: var(--rs-on-surface-muted);
    font-size: 1.2rem;
}

/* Botón que pliega/despliega el panel de filtros, con contador de filtros activos. */
.fb-filter-toggle[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0.45rem 0.7rem;
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.fb-filter-toggle:hover[b-qn6v22uzng] { border-color: var(--rs-outline); }

.fb-filter-toggle.has-filters[b-qn6v22uzng] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.fb-filter-toggle .material-icons-round[b-qn6v22uzng] { font-size: 1.05rem; }

.fb-filter-badge[b-qn6v22uzng] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0 6px;
    line-height: 1.5;
}

.fb-filter-caret[b-qn6v22uzng] { color: var(--rs-on-surface-muted); margin-left: -2px; }

/* Botones de icono de la barra (Excel / Actualizar). */
.fb-icon-btn[b-qn6v22uzng] {
    --fb-icon-btn-bg: var(--rs-surface-container-low);
    --fb-icon-btn-fg: var(--rs-on-surface);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 8px;
    background: var(--fb-icon-btn-bg);
    color: var(--fb-icon-btn-fg);
    cursor: pointer;
    flex-shrink: 0;
    transition: filter 0.15s, box-shadow 0.15s;
}

.fb-icon-btn:hover[b-qn6v22uzng] {
    filter: brightness(1.1);
    box-shadow: 0 2px 6px var(--rs-shade-subtle);
}

.fb-icon-btn .material-icons-round[b-qn6v22uzng] { font-size: 1.2rem; }

/* Verde corporativo de Excel: color de MARCA, no de la paleta semántica del tema — por eso va en
   literal, con su variante aclarada para el tema oscuro (patrón "paleta propia" de CLAUDE.md). */
.fb-icon-btn-excel[b-qn6v22uzng] { --fb-icon-btn-bg: #217346; --fb-icon-btn-fg: #ffffff; }
:root[data-theme="dark"] .fb-icon-btn-excel[b-qn6v22uzng] { --fb-icon-btn-bg: #2e9e63; --fb-icon-btn-fg: #06130c; }

.fb-icon-btn-refresh[b-qn6v22uzng] { --fb-icon-btn-bg: var(--rs-primary); --fb-icon-btn-fg: var(--rs-on-primary); }

/* Panel plegable con los filtros: fila propia, con sitio para respirar. */
.fb-filters-row[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding-top: 0.6rem;
    border-top: 1px dashed var(--rs-outline-variant);
    animation: panel-fade-in-b-qn6v22uzng 0.2s ease-out;
}

.fb-filters-clear[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0.4rem 0.65rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.fb-filters-clear:hover[b-qn6v22uzng] { background: var(--rs-surface-container-low); color: var(--rs-on-surface); }
.fb-filters-clear .material-icons-round[b-qn6v22uzng] { font-size: 1rem; }

/* ===== Chips de categoría (filtro rápido) ===== */
.fb-cat-chips[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.35rem;
    border-top: 1px dashed var(--rs-outline-variant);
}

.fb-cat-chip[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 12px;
    border-radius: 999px;
    border: 1px solid transparent;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.3px;
    cursor: pointer;
    opacity: 0.72;
    transition: opacity 0.15s, box-shadow 0.15s;
}

.fb-cat-chip:hover[b-qn6v22uzng] { opacity: 1; }

.fb-cat-chip.active[b-qn6v22uzng] {
    opacity: 1;
    border-color: currentColor;
    box-shadow: 0 1px 4px var(--rs-shade-subtle);
}

.fb-cat-chip-count[b-qn6v22uzng] {
    font-weight: 800;
    font-size: 0.68rem;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    border-radius: 999px;
    padding: 0 6px;
    line-height: 1.4;
}

/* ===== DATA GRID CARD ===== */
.fb-grid-card[b-qn6v22uzng] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 0.25rem 0;
    overflow: hidden;
}

/* ===== USER CELL ===== */
.fb-user-cell[b-qn6v22uzng] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fb-user-avatar[b-qn6v22uzng] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rs-primary, #631656), var(--rs-primary-light, #8b3d7c));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rs-on-primary);
    font-weight: 700;
    font-size: 0.72rem;
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.fb-user-info[b-qn6v22uzng] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fb-user-name[b-qn6v22uzng] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fb-user-url[b-qn6v22uzng] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 150px;
}

/* ===== MODULE TAG ===== */
.fb-module-tag[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 0.68rem;
    font-weight: 600;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
    line-height: 1.5;
}

.fb-module-tag-icon[b-qn6v22uzng] {
    font-size: 0.72rem;
    flex-shrink: 0;
}

/* ===== CATEGORY BADGE ===== */
.fb-badge[b-qn6v22uzng] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.3px;
}

.badge-bug[b-qn6v22uzng]        { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.badge-sugerencia[b-qn6v22uzng] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-mejora[b-qn6v22uzng]     { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-consulta[b-qn6v22uzng]   { background: var(--rs-violet-subtle); color: var(--rs-on-violet-subtle); }
.badge-otro[b-qn6v22uzng]       { background: var(--rs-surface-container-low); color: var(--rs-on-surface-variant); }

/* ===== COMMENT TEXT ===== */
.fb-comment-text[b-qn6v22uzng] {
    color: var(--rs-on-surface-variant);
    font-size: 0.8rem;
    line-height: 1.4;
}

/* ===== DATE DISPLAY ===== */
.fb-date[b-qn6v22uzng] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
}

/* ===== NOTES ICON ===== */
.fb-notes-icon[b-qn6v22uzng] {
    font-size: 1rem;
    color: var(--rs-primary-text);
}

/* ===== ACTION BUTTONS ===== */
.fb-action-btn-group[b-qn6v22uzng] {
    display: flex;
    gap: 4px;
}

/* ===== EMPTY STATE ===== */
.fb-empty-state[b-qn6v22uzng] {
    text-align: center;
    padding: 3rem 1rem;
}

.fb-empty-icon[b-qn6v22uzng] {
    font-size: 3rem;
    color: var(--rs-on-surface-disabled);
    display: block;
    margin-bottom: 0.75rem;
}

.fb-empty-title[b-qn6v22uzng] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    margin: 0 0 0.25rem;
}

.fb-empty-sub[b-qn6v22uzng] {
    font-size: 0.85rem;
    color: var(--rs-on-surface-muted);
    margin: 0;
}

/* ===== SKELETON STATES ===== */
.skeleton-search[b-qn6v22uzng] {
    height: 56px;
    border-radius: 10px;
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: 1.25rem;
}

.skeleton-grid[b-qn6v22uzng] {
    border-radius: 10px;
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 1rem 0;
}

.skeleton-grid-row[b-qn6v22uzng] {
    height: 52px;
    margin: 0.5rem 1rem;
    border-radius: 6px;
}

/* ===== TABS ===== */
[b-qn6v22uzng] .rz-tabview {
    border: none;
}

[b-qn6v22uzng] .rz-tabview-nav {
    border-bottom: 2px solid var(--rs-outline-variant);
    padding: 0 1rem;
    gap: 0;
}

[b-qn6v22uzng] .rz-tabview-nav li .rz-tabview-nav-link {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    padding: 0.75rem 1rem;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

[b-qn6v22uzng] .rz-tabview-nav li .rz-tabview-nav-link:hover {
    color: var(--rs-on-surface);
}

[b-qn6v22uzng] .rz-tabview-nav li.rz-tabview-selected .rz-tabview-nav-link {
    color: var(--rs-primary-text);
    border-bottom-color: var(--rs-primary);
}

[b-qn6v22uzng] .rz-tabview-panels {
    padding: 0;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1200px) {
    .fb-kpi-row[b-qn6v22uzng] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .fb-kpi-row[b-qn6v22uzng] {
        grid-template-columns: 1fr;
    }
}

/* ===== Espera (antigüedad del mensaje sin responder) ===== */
.fb-wait[b-qn6v22uzng] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.74rem;
    font-weight: 800;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

.fb-wait .material-icons-round[b-qn6v22uzng] { font-size: 0.9rem; }
.fb-wait.warn[b-qn6v22uzng] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.fb-wait.late[b-qn6v22uzng] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }

.fb-rating[b-qn6v22uzng] { font-size: 1rem; line-height: 1; }

.fb-toolbar-right[b-qn6v22uzng] { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
/* /Pages/Feedback/FeedbackChat.razor.rz.scp.css */
.fbchat[b-v34psmwuas] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    overflow: hidden;
}

.fbchat-head[b-v34psmwuas] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.8rem;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--rs-primary-text);
}

.fbchat-head .material-icons-round[b-v34psmwuas] { font-size: 1.1rem; }
.fbchat-title[b-v34psmwuas] { flex: 1; }

.fbchat-live[b-v34psmwuas] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rs-surface-container-high);
    flex: 0 0 auto;
}

.fbchat-live.on[b-v34psmwuas] {
    background: var(--rs-success);
    box-shadow: 0 0 0 3px #dcfce7;
}

/* ===== Hilo ===== */
.fbchat[b-v34psmwuas] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 260px;
    align-self: stretch;
}

.fbchat-thread[b-v34psmwuas] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.8rem;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    background: var(--rs-surface);
}

/* Pega los mensajes al fondo cuando sobra espacio (lo más reciente, abajo). */
.fbchat-thread > .fbmsg:first-of-type[b-v34psmwuas] {
    margin-top: auto;
}

.fbchat-empty[b-v34psmwuas] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: auto;
    padding: 1.6rem 1rem;
    color: var(--rs-on-surface-muted);
    font-size: 0.83rem;
    text-align: center;
}

.fbchat-empty .material-icons-round[b-v34psmwuas] { font-size: 2rem; color: var(--rs-on-surface-disabled); }

.spin[b-v34psmwuas] { animation: fbspin-b-v34psmwuas 1s linear infinite; }
@keyframes fbspin-b-v34psmwuas { to { transform: rotate(360deg); } }

.fbmsg[b-v34psmwuas] { display: flex; }
.fbmsg.mine[b-v34psmwuas] { justify-content: flex-end; }
.fbmsg.theirs[b-v34psmwuas] { justify-content: flex-start; }

.fbmsg-bubble[b-v34psmwuas] {
    max-width: 78%;
    padding: 0.45rem 0.65rem;
    border-radius: 12px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.fbmsg.mine .fbmsg-bubble[b-v34psmwuas] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-outline);
}

.fbmsg-meta[b-v34psmwuas] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.15rem;
}

.fbmsg-author[b-v34psmwuas] {
    font-weight: 700;
    font-size: 0.72rem;
    color: var(--rs-on-surface);
}

.fbmsg-dev[b-v34psmwuas] {
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rs-on-primary);
    background: var(--rs-primary);
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
}

.fbmsg-time[b-v34psmwuas] {
    margin-left: auto;
    font-size: 0.66rem;
    color: var(--rs-on-surface-muted);
    font-family: 'IBM Plex Mono', monospace;
}

.fbmsg-text[b-v34psmwuas] {
    font-size: 0.85rem;
    color: var(--rs-on-surface);
    white-space: pre-wrap;
    word-break: break-word;
}

/* Marca "editado" junto a la hora */
.fbmsg-edited[b-v34psmwuas] {
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

/* Mensaje borrado (estilo WhatsApp) */
.fbmsg-deleted[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.fbmsg-deleted .material-icons-round[b-v34psmwuas] { font-size: 1rem; }

/* Acciones del propio mensaje (editar/borrar), visibles al pasar el ratón */
.fbmsg-actions[b-v34psmwuas] {
    display: flex;
    gap: 2px;
    margin-top: 4px;
    opacity: 0;
    transition: opacity 0.12s;
}

.fbmsg-bubble:hover .fbmsg-actions[b-v34psmwuas] { opacity: 1; }

.fbmsg-act[b-v34psmwuas] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 22px;
    border-radius: 6px;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.fbmsg-act:hover[b-v34psmwuas] { background: var(--rs-surface-container); color: var(--rs-primary-text); }
.fbmsg-act-danger:hover[b-v34psmwuas] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.fbmsg-act .material-icons-round[b-v34psmwuas] { font-size: 0.95rem; }

/* Edición en línea */
.fbmsg-edit[b-v34psmwuas] { display: flex; flex-direction: column; gap: 0.35rem; }

.fbmsg-edit-area[b-v34psmwuas] {
    width: 100%;
    min-width: 180px;
    resize: vertical;
    min-height: 44px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: 0.4rem 0.55rem;
    font-size: 0.85rem;
    font-family: inherit;
    outline: none;
}

.fbmsg-edit-area:focus[b-v34psmwuas] { border-color: var(--rs-primary-light); }

.fbmsg-edit-actions[b-v34psmwuas] { display: flex; justify-content: flex-end; gap: 0.35rem; }

.fbmsg-edit-cancel[b-v34psmwuas],
.fbmsg-edit-save[b-v34psmwuas] {
    all: unset;
    cursor: pointer;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
}

.fbmsg-edit-cancel[b-v34psmwuas] { color: var(--rs-on-surface-variant); border: 1px solid var(--rs-outline-variant); }
.fbmsg-edit-cancel:hover[b-v34psmwuas] { background: var(--rs-surface-container); }

.fbmsg-edit-save[b-v34psmwuas] { color: var(--rs-on-primary); background: var(--rs-primary); }
.fbmsg-edit-save:hover[b-v34psmwuas] { opacity: 0.92; }
.fbmsg-edit-save:disabled[b-v34psmwuas] { opacity: 0.45; cursor: not-allowed; }

.fbmsg-attachments[b-v34psmwuas] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.4rem;
}

.fbmsg-img[b-v34psmwuas] {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    cursor: pointer;
    display: block;
}

.fbmsg-video[b-v34psmwuas] {
    width: 200px;
    max-height: 140px;
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-inverse);
}

/* ===== Reacciones ===== */
.fbmsg-reactions[b-v34psmwuas] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-top: 5px;
}

.fbreact[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    border-radius: 999px;
    padding: 0.05rem 0.4rem;
    cursor: pointer;
    font-size: 0.78rem;
    line-height: 1.4;
    transition: background 0.12s, border-color 0.12s;
}

.fbreact:hover[b-v34psmwuas] { background: var(--rs-surface-container); }

.fbreact.mine[b-v34psmwuas] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary-light);
}

.fbreact-count[b-v34psmwuas] {
    font-weight: 800;
    font-size: 0.68rem;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.fbreact.mine .fbreact-count[b-v34psmwuas] { color: var(--rs-primary-text); }

.fbreact-add-wrap[b-v34psmwuas] { position: relative; display: inline-flex; }

.fbreact-add[b-v34psmwuas] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 22px;
    border-radius: 999px;
    border: 1px solid transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.fbreact-add:hover[b-v34psmwuas] { background: var(--rs-surface-container); color: var(--rs-primary-text); }
.fbreact-add .material-icons-round[b-v34psmwuas] { font-size: 1.05rem; }

.fbreact-palette[b-v34psmwuas] {
    position: absolute;
    bottom: 28px;
    left: 0;
    z-index: 20;
    display: flex;
    gap: 2px;
    padding: 0.3rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.18);
}

.fbreact-palette button[b-v34psmwuas] {
    all: unset;
    cursor: pointer;
    font-size: 1.15rem;
    padding: 0.1rem 0.25rem;
    border-radius: 7px;
    transition: background 0.1s;
}

.fbreact-palette button:hover[b-v34psmwuas] { background: var(--rs-surface-container); }

/* ===== Selector de emojis del compositor ===== */
.fbchat-emoji-wrap[b-v34psmwuas] { position: relative; flex: 0 0 auto; }

.fbchat-emoji-pop[b-v34psmwuas] {
    position: absolute;
    bottom: 46px;
    left: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 2px;
    padding: 0.4rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.18);
    width: 280px;
}

.fbchat-emoji-pop button[b-v34psmwuas] {
    all: unset;
    cursor: pointer;
    text-align: center;
    font-size: 1.2rem;
    padding: 0.2rem 0;
    border-radius: 7px;
    transition: background 0.1s;
}

.fbchat-emoji-pop button:hover[b-v34psmwuas] { background: var(--rs-surface-container); }

/* ===== Adjuntos pendientes ===== */
.fbchat-pending[b-v34psmwuas] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.5rem 0.8rem 0;
}

.fbchat-chip[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    padding: 0.15rem 0.5rem;
}

.fbchat-chip .material-icons-round[b-v34psmwuas] { font-size: 0.9rem; }

.fbchat-chip-x[b-v34psmwuas] {
    cursor: pointer;
    color: var(--rs-on-surface-muted);
}

.fbchat-chip-x:hover[b-v34psmwuas] { color: var(--rs-danger); }

/* ===== Input ===== */
.fbchat-input[b-v34psmwuas] {
    display: flex;
    align-items: flex-end;
    gap: 0.4rem;
    padding: 0.55rem 0.8rem;
    border-top: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
}

.fbchat-attach[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 9px;
    border: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.fbchat-attach:hover[b-v34psmwuas] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.fbchat-attach[b-v34psmwuas]  input[type="file"] {
    display: none;
}

.fbchat-textarea[b-v34psmwuas] {
    flex: 1;
    resize: none;
    min-height: 38px;
    max-height: 120px;
    overflow-y: auto;
    line-height: 1.35;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 9px;
    padding: 0.5rem 0.7rem;
    font-size: 0.85rem;
    font-family: inherit;
    outline: none;
}

.fbchat-textarea:focus[b-v34psmwuas] {
    border-color: var(--rs-primary-light);
}

.fbchat-send[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border: 0;
    border-radius: 9px;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    cursor: pointer;
    transition: opacity 0.15s;
}

.fbchat-send:disabled[b-v34psmwuas] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ===== Mensajes de sistema (cambio de estado, reapertura…) ===== */
.fbmsg.system[b-v34psmwuas] { justify-content: center; }

.fbmsg-system[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 92%;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--rs-surface-container);
    border: 1px dashed var(--rs-outline);
    color: var(--rs-on-surface);
    font-size: 0.74rem;
    font-weight: 600;
    text-align: center;
}

.fbmsg-system .material-icons-round[b-v34psmwuas] { font-size: 0.95rem; color: var(--rs-primary-text); }
.fbmsg-system-time[b-v34psmwuas] { font-weight: 400; color: var(--rs-on-surface-muted); }

/* ===== Separador "Mensajes nuevos" ===== */
.fbchat-divider[b-v34psmwuas] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0.2rem 0;
    color: var(--rs-on-warning-subtle);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fbchat-divider[b-v34psmwuas]::before,
.fbchat-divider[b-v34psmwuas]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--rs-warning-subtle);
}

/* Si el separador va primero, que también pegue el hilo al fondo. */
.fbchat-thread > .fbchat-divider:first-child[b-v34psmwuas] { margin-top: auto; }

/* ===== Comentario inicial del feedback (primer mensaje del hilo) ===== */
.fbmsg.initial .fbmsg-bubble[b-v34psmwuas] { border-style: dashed; }

.fbmsg-initial-tag[b-v34psmwuas] {
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container-high);
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
}

/* ===== Respuestas rápidas / plantillas (desarrollo) ===== */
.fbchat-quick-pop[b-v34psmwuas] {
    position: absolute;
    bottom: 44px;
    left: 0;
    z-index: 30;
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 320px;
    max-width: 80vw;
    max-height: 360px;
    overflow-y: auto;
    padding: 0.35rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15);
}

.fbchat-quick-item[b-v34psmwuas] {
    display: flex;
    align-items: flex-start;
    gap: 2px;
}

.fbchat-quick-text[b-v34psmwuas] {
    flex: 1 1 auto;
    text-align: left;
    font-size: 0.78rem;
    line-height: 1.3;
    padding: 0.4rem 0.55rem;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--rs-on-surface);
    cursor: pointer;
}

.fbchat-quick-text:hover[b-v34psmwuas] { background: var(--rs-surface-container); }

.fbchat-quick-item-actions[b-v34psmwuas] {
    display: flex;
    align-items: center;
    gap: 1px;
    flex-shrink: 0;
    padding-top: 3px;
}

.fbchat-quick-item-actions button[b-v34psmwuas] {
    all: unset;
    display: inline-flex;
    padding: 4px;
    border-radius: 6px;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
}

.fbchat-quick-item-actions button:hover[b-v34psmwuas] { background: var(--rs-surface-container); color: var(--rs-on-surface); }
.fbchat-quick-item-actions .material-icons-round[b-v34psmwuas] { font-size: 0.95rem; }

.fbchat-quick-edit-row[b-v34psmwuas] { display: flex; flex-direction: column; gap: 4px; padding: 0.3rem 0.4rem; }

.fbchat-quick-edit-area[b-v34psmwuas] {
    width: 100%;
    resize: vertical;
    font: inherit;
    font-size: 0.78rem;
    border: 1px solid var(--rs-outline);
    border-radius: 6px;
    padding: 0.35rem 0.5rem;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
}

.fbchat-quick-edit-actions[b-v34psmwuas] { display: flex; justify-content: flex-end; gap: 6px; }

.fbchat-quick-edit-actions button[b-v34psmwuas] {
    all: unset;
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 6px;
    color: var(--rs-on-surface-variant);
}

.fbchat-quick-edit-actions button:last-child[b-v34psmwuas] { color: var(--rs-primary-text); }
.fbchat-quick-edit-actions button:hover:not(:disabled)[b-v34psmwuas] { background: var(--rs-surface-container); }
.fbchat-quick-edit-actions button:disabled[b-v34psmwuas] { opacity: 0.5; cursor: default; }

.fbchat-quick-empty[b-v34psmwuas], .fbchat-quick-loading[b-v34psmwuas] {
    padding: 0.6rem;
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
    text-align: center;
}

.fbchat-quick-loading .material-icons-round[b-v34psmwuas] { font-size: 1.1rem; }

.fbchat-quick-new[b-v34psmwuas] {
    display: flex;
    gap: 4px;
    align-items: flex-end;
    border-top: 1px solid var(--rs-outline-variant);
    margin-top: 4px;
    padding-top: 6px;
}

.fbchat-quick-new-area[b-v34psmwuas] {
    flex: 1 1 auto;
    resize: vertical;
    font: inherit;
    font-size: 0.78rem;
    border: 1px solid var(--rs-outline);
    border-radius: 6px;
    padding: 0.35rem 0.5rem;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
}

.fbchat-quick-new button[b-v34psmwuas] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    cursor: pointer;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    flex-shrink: 0;
}

.fbchat-quick-new button:disabled[b-v34psmwuas] { opacity: 0.5; cursor: default; }

/* ===== Enlaces dentro de los mensajes ===== */
.fbmsg-text a[b-v34psmwuas] { color: var(--rs-primary-text); text-decoration: underline; word-break: break-all; }

/* ===== "Está escribiendo…" ===== */
.fbchat-typing[b-v34psmwuas] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.8rem 0.35rem;
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    font-style: italic;
}

.fbchat-typing .dots span[b-v34psmwuas] {
    display: inline-block;
    width: 4px; height: 4px; margin-right: 2px;
    border-radius: 50%;
    background: var(--rs-outline-strong);
    animation: fbtyping-b-v34psmwuas 1.2s infinite ease-in-out;
}
.fbchat-typing .dots span:nth-child(2)[b-v34psmwuas] { animation-delay: 0.2s; }
.fbchat-typing .dots span:nth-child(3)[b-v34psmwuas] { animation-delay: 0.4s; }
@keyframes fbtyping-b-v34psmwuas { 0%, 80%, 100% { opacity: 0.3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-2px); } }

/* ===== Lightbox de imágenes ===== */
.fbmsg-img[b-v34psmwuas] { cursor: zoom-in; }

.fb-lightbox[b-v34psmwuas] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-surface-inverse);
    cursor: zoom-out;
    padding: 2rem;
}

.fb-lightbox img[b-v34psmwuas] {
    max-width: 100%;
    max-height: 100%;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    object-fit: contain;
}

.fb-lightbox-caption[b-v34psmwuas] {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    transform: translateX(-50%);
    color: var(--rs-on-primary);
    font-size: 0.8rem;
    background: var(--rs-scrim);
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    max-width: 90vw;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fb-lightbox-close[b-v34psmwuas] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: rgba(255, 255, 255, 0.12);
    border: none;
    color: var(--rs-on-primary);
    border-radius: 50%;
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
}

/* ==========================================================================
   Participantes invitados con @menciones
   ========================================================================== */

.fbchat-participants[b-v34psmwuas] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 7px 12px;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
}

.fbchat-participant[b-v34psmwuas] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    font-size: 11px;
    color: var(--rs-on-surface-variant);
    max-width: 100%;
}

.fbchat-participant.is-online[b-v34psmwuas] {
    border-color: var(--rs-success);
}

.fbchat-participant .material-icons-round[b-v34psmwuas] {
    font-size: 13px;
    color: var(--rs-on-surface-muted);
}

.fbchat-participant-name[b-v34psmwuas] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 140px;
}
/* /Pages/Feedback/FeedbackChoiceChip.razor.rz.scp.css */
/* Chip de elección: mismo lenguaje visual que .reserva-via-chip de la reserva. */
.fb-chip[b-ycmkk59fnz] {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: 100%;
    padding: 0.15rem 0.35rem 0.15rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, box-shadow 0.12s;
}

.fb-chip.compact[b-ycmkk59fnz] { padding: 0.1rem 0.3rem 0.1rem 0.4rem; font-size: 0.72rem; }

.fb-chip:hover:not(:disabled)[b-ycmkk59fnz] { filter: brightness(0.97); border-color: currentColor; }
.fb-chip:disabled[b-ycmkk59fnz] { cursor: default; opacity: 0.7; }
.fb-chip.open[b-ycmkk59fnz] { box-shadow: 0 0 0 2px rgba(99, 22, 86, 0.22); }

.fb-chip-icon[b-ycmkk59fnz] { font-size: 0.95rem; opacity: 0.85; }

.fb-chip-label[b-ycmkk59fnz] {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fb-chip-caret[b-ycmkk59fnz] {
    font-size: 1rem;
    color: var(--rs-on-surface-muted);
    margin-left: -0.15rem;
    transition: transform 0.15s;
}

.fb-chip.open .fb-chip-caret[b-ycmkk59fnz] { transform: rotate(180deg); }

/* ── Prioridad ── */
.fb-chip.prio-0[b-ycmkk59fnz] { background: var(--rs-surface-container-low); border-color: var(--rs-outline-variant); color: var(--rs-on-surface-muted); border-style: dashed; }
.fb-chip.prio-1[b-ycmkk59fnz] { background: var(--rs-success-subtle); border-color: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.fb-chip.prio-2[b-ycmkk59fnz] { background: var(--rs-info-subtle); border-color: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.fb-chip.prio-3[b-ycmkk59fnz] { background: var(--rs-warning-subtle); border-color: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.fb-chip.prio-4[b-ycmkk59fnz] { background: var(--rs-danger-subtle); border-color: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }

/* ── Estado ── */
.fb-chip.estado-pendiente[b-ycmkk59fnz]  { background: var(--rs-warning-subtle); border-color: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.fb-chip.estado-revision[b-ycmkk59fnz]   { background: var(--rs-info-subtle); border-color: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.fb-chip.estado-esperando[b-ycmkk59fnz]  { background: var(--rs-indigo-subtle); border-color: var(--rs-indigo-subtle); color: var(--rs-on-indigo-subtle); }
.fb-chip.estado-resuelto[b-ycmkk59fnz]   { background: var(--rs-success-subtle); border-color: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.fb-chip.estado-descartado[b-ycmkk59fnz] { background: var(--rs-surface-container); border-color: var(--rs-outline-variant); color: var(--rs-on-surface-variant); }

/* ── Asignado ── */
.fb-chip.asig-none[b-ycmkk59fnz]  { background: var(--rs-surface-container-low); border-color: var(--rs-outline-variant); color: var(--rs-on-surface-muted); border-style: dashed; }
.fb-chip.asig-me[b-ycmkk59fnz]    { background: var(--rs-primary-subtle); border-color: var(--rs-outline); color: var(--rs-primary-text); }
.fb-chip.asig-other[b-ycmkk59fnz] { background: var(--rs-surface-container); border-color: var(--rs-outline); color: var(--rs-on-surface); }
/* /Pages/Feedback/FeedbackChoiceMenu.razor.rz.scp.css */
/* Backdrop transparente: cierra el menú al hacer clic en cualquier otro sitio. Por encima del
   diálogo de Radzen (z-index ~1000) para capturar el clic antes que nadie. Sin `inset: 0`: el
   bloque contenedor del fixed es .rz-body, que hace scroll, así que un inset:0 taparía el
   principio del contenido y no lo que se ve. El rectángulo visible lo calcula fbAnchorMenu. */
.fb-choice-backdrop[b-lrddt8v9s2] {
    position: fixed;
    z-index: 2000;
    background: transparent;
}

/* Menú flotante en fijo: no depende del árbol del grid. La posición la escribe el componente
   con las coordenadas que devuelve fbAnchorMenu. */
.fb-choice-menu[b-lrddt8v9s2] {
    position: fixed;
    z-index: 2001;
    width: 232px;
    max-width: calc(100vw - 16px);
    padding: 0.35rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.16), 0 2px 6px rgba(15, 23, 42, 0.08);
}

/* La animación espera a tener la posición buena: si no, el "pop" se gastaría fuera de pantalla. */
.fb-choice-menu.placed[b-lrddt8v9s2] {
    animation: fb-choice-pop-b-lrddt8v9s2 0.12s ease-out;
}

@keyframes fb-choice-pop-b-lrddt8v9s2 {
    from { opacity: 0; transform: translateY(-4px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.fb-choice-title[b-lrddt8v9s2] {
    padding: 0.25rem 0.6rem 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.fb-choice-item[b-lrddt8v9s2] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.4rem 0.6rem;
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    cursor: pointer;
}

.fb-choice-item:hover:not(:disabled)[b-lrddt8v9s2] { background: var(--rs-surface-container); }
.fb-choice-item:disabled[b-lrddt8v9s2] { opacity: 0.6; cursor: default; }
.fb-choice-item.current[b-lrddt8v9s2] { background: var(--rs-surface-container-low); cursor: default; }

.fb-choice-icon[b-lrddt8v9s2] { font-size: 1rem; color: var(--rs-on-surface-muted); }
.fb-choice-check[b-lrddt8v9s2] { font-size: 1rem; color: var(--rs-primary-text); }

.fb-choice-name[b-lrddt8v9s2] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fb-choice-empty[b-lrddt8v9s2] {
    padding: 0.4rem 0.6rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* Colores por opción (mismos tonos que los chips) */
.fb-choice-item.prio-1 .fb-choice-icon[b-lrddt8v9s2] { color: var(--rs-success); }
.fb-choice-item.prio-2 .fb-choice-icon[b-lrddt8v9s2] { color: var(--rs-info); }
.fb-choice-item.prio-3 .fb-choice-icon[b-lrddt8v9s2] { color: var(--rs-warning); }
.fb-choice-item.prio-4 .fb-choice-icon[b-lrddt8v9s2] { color: var(--rs-danger); }
.fb-choice-item.prio-4[b-lrddt8v9s2] { color: var(--rs-on-danger-subtle); }

.fb-choice-item.estado-pendiente .fb-choice-icon[b-lrddt8v9s2]  { color: var(--rs-warning); }
.fb-choice-item.estado-revision .fb-choice-icon[b-lrddt8v9s2]   { color: var(--rs-info); }
.fb-choice-item.estado-resuelto .fb-choice-icon[b-lrddt8v9s2]   { color: var(--rs-success); }
.fb-choice-item.estado-descartado .fb-choice-icon[b-lrddt8v9s2] { color: var(--rs-on-surface-variant); }

.fb-choice-item.asig-me[b-lrddt8v9s2] { color: var(--rs-primary-text); }
.fb-choice-item.asig-me .fb-choice-icon[b-lrddt8v9s2] { color: var(--rs-primary-text); }
.fb-choice-item.asig-none[b-lrddt8v9s2] { color: var(--rs-on-surface-variant); }
/* /Pages/Feedback/FeedbackDetailPanel.razor.rz.scp.css */
/* ============================================
   FeedbackDetailPanel — Scoped CSS
   Contenido del detalle de una solicitud; vive dentro del diálogo de Radzen
   (960px, rs-dialog-fill), como el antiguo FeedbackDetailDialog al que sustituye.
   ============================================ */

/* Container */
.fb-panel-container[b-qiqpgx9naw] {
    padding: 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    height: 100%;
    min-height: 0;
}

/* Cuerpo a dos columnas: izquierda info+notas, derecha chat. */
.fb-body[b-qiqpgx9naw] {
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    min-height: 0;
    gap: 1rem;
}

/* Columna izquierda (cabecera + comentario + notas) con su propio scroll vertical;
   el horizontal nunca: si algo no cabe, que envuelva dentro de su tarjeta. */
.fb-upper[b-qiqpgx9naw] {
    flex: 0 0 44%;
    max-width: 48%;
    min-width: 320px;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-right: 0.25rem;
}

@media (max-width: 860px) {
    .fb-body[b-qiqpgx9naw] { flex-direction: column; }
    .fb-upper[b-qiqpgx9naw] { flex: 0 1 auto; max-width: none; min-width: 0; }
}

/* ===== HEADER GRID ===== */
/* minmax(0, …): sin él, el contenido de las tarjetas (chips, botones) fija un min-content
   que desborda la columna y aparece un scroll horizontal. */
.detail-header-grid[b-qiqpgx9naw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
}

/* ===== USER CARD ===== */
.detail-user-card[b-qiqpgx9naw] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.875rem 1rem;
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.detail-user-avatar[b-qiqpgx9naw] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rs-primary, #631656), var(--rs-primary-light, #8b3d7c));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rs-on-primary);
    font-weight: 700;
    font-size: 1rem;
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.detail-user-info[b-qiqpgx9naw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.detail-user-name[b-qiqpgx9naw] {
    font-weight: 600;
    color: var(--rs-on-surface);
    font-size: 0.95rem;
}

.detail-user-date[b-qiqpgx9naw] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-muted);
    margin-top: 2px;
}

.detail-module-tag[b-qiqpgx9naw] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    margin-top: 4px;
    white-space: nowrap;
}

.detail-module-tag-icon[b-qiqpgx9naw] {
    font-size: 0.78rem;
    flex-shrink: 0;
}

.detail-user-url[b-qiqpgx9naw] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    margin-top: 3px;
    word-break: break-all;
}

/* ===== BADGES CARD ===== */
.detail-badges-card[b-qiqpgx9naw] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.875rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.detail-badges-row[b-qiqpgx9naw] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

/* ===== BADGE BASE ===== */
.fb-badge[b-qiqpgx9naw] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.3px;
}

/* Category badges */
.badge-bug[b-qiqpgx9naw]        { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.badge-sugerencia[b-qiqpgx9naw] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-mejora[b-qiqpgx9naw]     { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-consulta[b-qiqpgx9naw]   { background: var(--rs-violet-subtle); color: var(--rs-on-violet-subtle); }
.badge-otro[b-qiqpgx9naw]       { background: var(--rs-surface-container-low); color: var(--rs-on-surface-variant); }

/* Priority badges */
.badge-critica[b-qiqpgx9naw]     { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.badge-alta[b-qiqpgx9naw]        { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.badge-media[b-qiqpgx9naw]       { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.badge-baja[b-qiqpgx9naw]        { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-sin-asignar[b-qiqpgx9naw] { background: var(--rs-surface-container-low); color: var(--rs-on-surface-muted); }

/* Status badges */
.badge-resuelto[b-qiqpgx9naw]    { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-en-revision[b-qiqpgx9naw] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-esperando[b-qiqpgx9naw]   { background: var(--rs-indigo-subtle); color: var(--rs-on-indigo-subtle); }
.badge-descartado[b-qiqpgx9naw]  { background: var(--rs-surface-container-low); color: var(--rs-on-surface-variant); }
.badge-pendiente[b-qiqpgx9naw]   { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

/* ===== ADMIN METADATA ===== */
.detail-admin-meta[b-qiqpgx9naw] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8rem;
    color: var(--rs-on-surface-muted);
}

.detail-admin-meta-icon[b-qiqpgx9naw] {
    font-size: 0.95rem;
}

.detail-admin-meta-separator[b-qiqpgx9naw] {
    color: var(--rs-on-surface-disabled);
}

/* ===== COMMENT SECTION ===== */
.detail-comment-card[b-qiqpgx9naw] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.detail-section-label[b-qiqpgx9naw] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rs-on-surface-muted);
    margin-bottom: 0.625rem;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.detail-section-label-icon[b-qiqpgx9naw] {
    font-size: 0.875rem;
}

.detail-comment-text[b-qiqpgx9naw] {
    margin: 0;
    color: var(--rs-on-surface);
    font-size: 0.875rem;
    line-height: 1.65;
    white-space: pre-wrap;
}

/* ===== ADMIN NOTES SECTION ===== */
/* ===== MOTIVO DEL CIERRE =====
   Mismo formato que la tarjeta del comentario, con la banda lateral que lo marca como el
   desenlace de la solicitud (es lo que se le mandó al usuario, no una nota interna). */
.detail-close-card[b-qiqpgx9naw] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-primary);
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.detail-close-text[b-qiqpgx9naw] {
    margin: 0.4rem 0 0;
    font-size: 0.85rem;
    line-height: 1.55;
    color: var(--rs-on-surface);
    white-space: pre-wrap;
}

.detail-close-meta[b-qiqpgx9naw] {
    margin-top: 0.5rem;
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.detail-notes-section[b-qiqpgx9naw] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ===== ERROR ALERT ===== */
.error-alert[b-qiqpgx9naw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--rs-danger-subtle);
    border: 1px solid var(--rs-danger-subtle);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    color: var(--rs-on-danger-subtle);
    font-size: 0.8rem;
    font-weight: 500;
    animation: shake-b-qiqpgx9naw 0.3s ease;
}

@keyframes shake-b-qiqpgx9naw {
    0%, 100% { transform: translateX(0); }
    25%      { transform: translateX(-4px); }
    75%      { transform: translateX(4px); }
}

.error-alert-icon[b-qiqpgx9naw] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ===== FOOTER ===== */
.fb-panel-footer[b-qiqpgx9naw] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rs-outline-variant);
}

/* ===== RESPONSIVE ===== */
/* Con el diálogo a ~96vw, el viewport es una buena aproximación de su anchura: por debajo
   de 1000px las dos tarjetas de cabecera ya no caben lado a lado sin recortarse. */
@media (max-width: 1000px) {
    .detail-header-grid[b-qiqpgx9naw] {
        grid-template-columns: 1fr;
    }
}

/* ===== Asignación ===== */
.detail-assign[b-qiqpgx9naw] { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; font-size: 0.8rem; color: var(--rs-on-surface); flex-wrap: wrap; }

/* ===== Duplicados (fase 3) ===== */
.detail-duplicate[b-qiqpgx9naw] { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.5rem; font-size: 0.8rem; color: var(--rs-on-surface-variant); flex-wrap: wrap; }
.detail-duplicate-link[b-qiqpgx9naw] {
    all: unset;
    cursor: pointer;
    font-weight: 700;
    color: var(--rs-primary-text);
    text-decoration: underline;
}
.detail-duplicate-link:hover[b-qiqpgx9naw] { color: var(--rs-primary); }

/* ===== Contexto técnico ===== */
.detail-context[b-qiqpgx9naw] { margin-top: 0.9rem; }
.detail-context-toggle[b-qiqpgx9naw] {
    background: none; border: none; padding: 0; cursor: pointer;
    color: var(--rs-primary-text); font-size: 0.8rem; font-weight: 700;
    display: inline-flex; align-items: center; gap: 0.25rem;
}
.detail-context-toggle .material-icons-round[b-qiqpgx9naw] { font-size: 1rem; }
.detail-context-grid[b-qiqpgx9naw] { display: grid; grid-template-columns: 120px 1fr; gap: 0.25rem 0.6rem; font-size: 0.78rem; margin-top: 0.5rem; }
.detail-context-grid dt[b-qiqpgx9naw] { color: var(--rs-on-surface-variant); }
.detail-context-grid dd[b-qiqpgx9naw] { margin: 0; color: var(--rs-on-surface); word-break: break-word; }
.detail-context-errors[b-qiqpgx9naw] { margin-top: 0.4rem; font-size: 0.74rem; background: var(--rs-warning-subtle); border: 1px solid var(--rs-warning-subtle); border-radius: 6px; padding: 0.45rem 0.6rem; color: var(--rs-on-warning-subtle); white-space: pre-wrap; word-break: break-word; }
.detail-context-raw[b-qiqpgx9naw] { font-size: 0.7rem; white-space: pre-wrap; word-break: break-word; background: var(--rs-surface-container-low); border-radius: 6px; padding: 0.5rem; max-height: 200px; overflow: auto; }

/* ===== Valoración del usuario ===== */
.detail-rating[b-qiqpgx9naw] { display: flex; align-items: flex-start; gap: 0.5rem; margin-top: 0.75rem; padding: 0.55rem 0.7rem; border-radius: 8px; font-size: 0.8rem; }
.detail-rating.good[b-qiqpgx9naw] { background: var(--rs-success-subtle); border: 1px solid var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.detail-rating.bad[b-qiqpgx9naw] { background: var(--rs-danger-subtle); border: 1px solid var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
/* /Pages/Feedback/FeedbackMyIndex.razor.rz.scp.css */
/* Reutiliza el design system de FeedbackAdminIndex */

.skeleton[b-i2gi0ug3r2] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-i2gi0ug3r2 1.5s infinite;
    border-radius: 6px;
}

@keyframes skeleton-shimmer-b-i2gi0ug3r2 {
    0%   { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.panel-fade-in[b-i2gi0ug3r2] {
    animation: panel-fade-in-b-i2gi0ug3r2 0.3s ease-out;
}

@keyframes panel-fade-in-b-i2gi0ug3r2 {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.skeleton-kpi[b-i2gi0ug3r2] {
    height: 72px;
}

.skeleton-search[b-i2gi0ug3r2] {
    height: 52px;
    margin-bottom: 1rem;
}

.skeleton-grid-row[b-i2gi0ug3r2] {
    height: 48px;
    margin-bottom: 0.5rem;
}

.fb-kpi-row[b-i2gi0ug3r2] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.fb-kpi-card[b-i2gi0ug3r2] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-left: 4px solid transparent;
}

.kpi-total[b-i2gi0ug3r2]       { border-left-color: var(--rs-primary); }
.kpi-pendientes[b-i2gi0ug3r2]  { border-left-color: var(--rs-warning); }
.kpi-revision[b-i2gi0ug3r2]    { border-left-color: var(--rs-info); }
.kpi-resueltos[b-i2gi0ug3r2]   { border-left-color: var(--rs-success); }
.kpi-descartados[b-i2gi0ug3r2] { border-left-color: var(--rs-outline-strong); }

.fb-kpi-icon[b-i2gi0ug3r2] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.kpi-total .fb-kpi-icon[b-i2gi0ug3r2]      { color: var(--rs-primary-text); background: var(--rs-primary-subtle); }
.kpi-pendientes .fb-kpi-icon[b-i2gi0ug3r2] { color: var(--rs-on-warning-subtle); background: var(--rs-warning-subtle); }
.kpi-revision .fb-kpi-icon[b-i2gi0ug3r2]   { color: var(--rs-on-info-subtle); background: var(--rs-info-subtle); }
.kpi-resueltos .fb-kpi-icon[b-i2gi0ug3r2]  { color: var(--rs-on-success-subtle); background: var(--rs-success-subtle); }
.kpi-descartados .fb-kpi-icon[b-i2gi0ug3r2] { color: var(--rs-on-surface-variant); background: var(--rs-surface-container); }

.fb-kpi-content[b-i2gi0ug3r2] {
    display: flex;
    flex-direction: column;
}

.fb-kpi-value[b-i2gi0ug3r2] {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    line-height: 1.1;
}

.fb-kpi-label[b-i2gi0ug3r2] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
}

.my-feedback-intro[b-i2gi0ug3r2] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.875rem 1rem;
    margin-bottom: 1.25rem;
}

.my-feedback-intro-icon[b-i2gi0ug3r2] {
    color: var(--rs-info);
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.my-feedback-intro p[b-i2gi0ug3r2] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--rs-on-surface);
    line-height: 1.5;
}

.fb-error-banner[b-i2gi0ug3r2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--rs-danger-subtle);
    border: 1px solid var(--rs-danger-subtle);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    color: var(--rs-on-danger-subtle);
    margin-bottom: 1rem;
    font-size: 0.875rem;
}

/* Barra de búsqueda y filtros: mismo patrón que la bandeja admin (FeedbackAdminIndex):
   búsqueda siempre visible + botón "Filtros" plegable con contador + chips de categoría. */
.fb-search-bar[b-i2gi0ug3r2] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    background: var(--rs-surface);
    border-radius: 10px;
    padding: 0.75rem 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    margin-bottom: 1rem;
}

.fb-search-row[b-i2gi0ug3r2] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.search-input-wrapper[b-i2gi0ug3r2] {
    flex: 1;
    min-width: 220px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: 0 0.75rem;
}

.search-icon[b-i2gi0ug3r2] {
    color: var(--rs-on-surface-muted);
    font-size: 1.1rem;
}

.fb-filter-toggle[b-i2gi0ug3r2] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0.45rem 0.7rem;
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.fb-filter-toggle:hover[b-i2gi0ug3r2] { border-color: var(--rs-outline); }

.fb-filter-toggle.has-filters[b-i2gi0ug3r2] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.fb-filter-toggle .material-icons-round[b-i2gi0ug3r2] { font-size: 1.05rem; }

.fb-filter-badge[b-i2gi0ug3r2] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0 6px;
    line-height: 1.5;
}

.fb-filter-caret[b-i2gi0ug3r2] { color: var(--rs-on-surface-muted); margin-left: -2px; }

.fb-filters-row[b-i2gi0ug3r2] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding-top: 0.6rem;
    border-top: 1px dashed var(--rs-outline-variant);
    animation: panel-fade-in-b-i2gi0ug3r2 0.2s ease-out;
}

.fb-filters-clear[b-i2gi0ug3r2] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0.4rem 0.65rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.fb-filters-clear:hover[b-i2gi0ug3r2] { background: var(--rs-surface-container-low); color: var(--rs-on-surface); }
.fb-filters-clear .material-icons-round[b-i2gi0ug3r2] { font-size: 1rem; }

.fb-icon-btn[b-i2gi0ug3r2] {
    --fb-icon-btn-bg: var(--rs-surface-container-low);
    --fb-icon-btn-fg: var(--rs-on-surface);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 8px;
    background: var(--fb-icon-btn-bg);
    color: var(--fb-icon-btn-fg);
    cursor: pointer;
    flex-shrink: 0;
    transition: filter 0.15s, box-shadow 0.15s;
}

.fb-icon-btn:hover[b-i2gi0ug3r2] {
    filter: brightness(1.1);
    box-shadow: 0 2px 6px var(--rs-shade-subtle);
}

.fb-icon-btn .material-icons-round[b-i2gi0ug3r2] { font-size: 1.2rem; }

.fb-icon-btn-refresh[b-i2gi0ug3r2] { --fb-icon-btn-bg: var(--rs-primary); --fb-icon-btn-fg: var(--rs-on-primary); }

.fb-cat-chips[b-i2gi0ug3r2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.35rem;
    border-top: 1px dashed var(--rs-outline-variant);
}

.fb-cat-chip[b-i2gi0ug3r2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 12px;
    border-radius: 999px;
    border: 1px solid transparent;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.3px;
    cursor: pointer;
    opacity: 0.72;
    transition: opacity 0.15s, box-shadow 0.15s;
}

.fb-cat-chip:hover[b-i2gi0ug3r2] { opacity: 1; }

.fb-cat-chip.active[b-i2gi0ug3r2] {
    opacity: 1;
    border-color: currentColor;
    box-shadow: 0 1px 4px var(--rs-shade-subtle);
}

.fb-cat-chip-count[b-i2gi0ug3r2] {
    font-weight: 800;
    font-size: 0.68rem;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    border-radius: 999px;
    padding: 0 6px;
    line-height: 1.4;
}

.fb-grid-card[b-i2gi0ug3r2] {
    background: var(--rs-surface);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 1rem;
}

.fb-empty-state[b-i2gi0ug3r2] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.fb-empty-icon[b-i2gi0ug3r2] {
    font-size: 3rem;
    color: var(--rs-on-surface-disabled);
    display: block;
    margin-bottom: 0.75rem;
}

.fb-empty-title[b-i2gi0ug3r2] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin: 0 0 0.35rem;
}

.fb-empty-sub[b-i2gi0ug3r2] {
    font-size: 0.875rem;
    color: var(--rs-on-surface-muted);
    margin: 0;
}

.fb-badge[b-i2gi0ug3r2] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.badge-bug[b-i2gi0ug3r2]        { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.badge-sugerencia[b-i2gi0ug3r2] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-mejora[b-i2gi0ug3r2]     { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-consulta[b-i2gi0ug3r2]   { background: var(--rs-violet-subtle); color: var(--rs-on-violet-subtle); }
.badge-otro[b-i2gi0ug3r2]       { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.badge-pendiente[b-i2gi0ug3r2]  { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.badge-en-revision[b-i2gi0ug3r2] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-esperando[b-i2gi0ug3r2]  { background: var(--rs-indigo-subtle); color: var(--rs-on-indigo-subtle); }
.badge-resuelto[b-i2gi0ug3r2]   { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-descartado[b-i2gi0ug3r2] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }

.fb-module-tag[b-i2gi0ug3r2] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--rs-on-indigo-subtle);
    background: var(--rs-indigo-subtle);
    padding: 2px 8px;
    border-radius: 6px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fb-module-tag-icon[b-i2gi0ug3r2] {
    font-size: 14px !important;
}

.fb-user-url[b-i2gi0ug3r2] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    max-width: 180px;
}

.fb-comment-text[b-i2gi0ug3r2] {
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

@media (max-width: 1100px) {
    .fb-kpi-row[b-i2gi0ug3r2] {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 700px) {
    .fb-kpi-row[b-i2gi0ug3r2] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /Pages/Feedback/FeedbackUserDetailDialog.razor.rz.scp.css */
.dialog-container[b-da2gcq9o5l] {
    padding: 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    min-height: 0;
}

/* Cuerpo a dos columnas: izquierda info, derecha chat. */
.fb-body[b-da2gcq9o5l] {
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    min-height: 0;
    gap: 1rem;
}

/* Columna izquierda (estado + metadatos + comentario) con su propio scroll. */
.fb-upper[b-da2gcq9o5l] {
    flex: 0 0 42%;
    max-width: 46%;
    min-width: 300px;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-right: 0.25rem;
}

@media (max-width: 820px) {
    .fb-body[b-da2gcq9o5l] { flex-direction: column; }
    .fb-upper[b-da2gcq9o5l] { flex: 0 1 auto; max-width: none; min-width: 0; }
}

.detail-status-tracker[b-da2gcq9o5l] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 1rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
}

.status-step[b-da2gcq9o5l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    min-width: 80px;
}

.status-step-icon[b-da2gcq9o5l] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    transition: all 0.2s;
}

.status-step.pending .status-step-icon[b-da2gcq9o5l] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-muted);
    border: 2px solid var(--rs-outline-variant);
}

.status-step.completed .status-step-icon[b-da2gcq9o5l] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border: 2px solid var(--rs-primary);
}

.status-step-label[b-da2gcq9o5l] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    text-align: center;
}

.status-step.completed .status-step-label[b-da2gcq9o5l] {
    color: var(--rs-on-surface);
}

.status-step-connector[b-da2gcq9o5l] {
    flex: 1;
    height: 2px;
    background: var(--rs-surface-container-high);
    min-width: 24px;
    max-width: 48px;
    margin-bottom: 1.25rem;
}

.status-step-connector.completed[b-da2gcq9o5l] {
    background: var(--rs-primary);
}

.detail-meta-card[b-da2gcq9o5l] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.detail-badges-row[b-da2gcq9o5l] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.fb-badge[b-da2gcq9o5l] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-bug[b-da2gcq9o5l]        { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.badge-sugerencia[b-da2gcq9o5l] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-mejora[b-da2gcq9o5l]     { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-consulta[b-da2gcq9o5l]   { background: var(--rs-violet-subtle); color: var(--rs-on-violet-subtle); }
.badge-otro[b-da2gcq9o5l]       { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.badge-pendiente[b-da2gcq9o5l]  { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.badge-en-revision[b-da2gcq9o5l] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.badge-esperando[b-da2gcq9o5l]  { background: var(--rs-indigo-subtle); color: var(--rs-on-indigo-subtle); }
.badge-resuelto[b-da2gcq9o5l]   { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-descartado[b-da2gcq9o5l] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.badge-critica[b-da2gcq9o5l]    { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.badge-alta[b-da2gcq9o5l]       { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.badge-media[b-da2gcq9o5l]      { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.badge-baja[b-da2gcq9o5l]       { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.badge-sin-asignar[b-da2gcq9o5l] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }

.detail-dates[b-da2gcq9o5l] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.detail-date-item[b-da2gcq9o5l] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: var(--rs-on-surface-variant);
}

.detail-date-icon[b-da2gcq9o5l] {
    font-size: 16px !important;
    color: var(--rs-on-surface-muted);
}

.detail-module[b-da2gcq9o5l],
.detail-page-url[b-da2gcq9o5l] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: var(--rs-on-surface);
}

.detail-module-icon[b-da2gcq9o5l],
.detail-page-icon[b-da2gcq9o5l] {
    font-size: 16px !important;
    color: var(--rs-on-surface-muted);
    flex-shrink: 0;
}

.detail-page-url span:last-child[b-da2gcq9o5l] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.detail-comment-card[b-da2gcq9o5l] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 1rem;
}

.detail-section-label[b-da2gcq9o5l] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.75rem;
}

.detail-section-label-icon[b-da2gcq9o5l] {
    font-size: 16px !important;
}

.detail-comment-text[b-da2gcq9o5l] {
    margin: 0;
    font-size: 0.95rem;
    color: var(--rs-on-surface);
    line-height: 1.6;
    white-space: pre-wrap;
}

.detail-footer-note[b-da2gcq9o5l] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    background: var(--rs-success-subtle);
    border: 1px solid var(--rs-success-subtle);
    border-radius: 8px;
    padding: 0.75rem 1rem;
}

.detail-footer-note .material-icons-round[b-da2gcq9o5l] {
    font-size: 18px;
    color: var(--rs-success);
    flex-shrink: 0;
}

.dialog-footer[b-da2gcq9o5l] {
    display: flex;
    justify-content: flex-end;
    padding-top: 0.5rem;
    border-top: 1px solid var(--rs-outline-variant);
}

/* ===== Acciones del usuario: cerrar / valorar ===== */
.detail-owner-actions[b-da2gcq9o5l] { margin-top: 0.9rem; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.detail-assignee[b-da2gcq9o5l] { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.78rem; color: var(--rs-on-surface); margin-top: 0.5rem; }
.detail-assignee .material-icons-round[b-da2gcq9o5l] { font-size: 1rem; }

.detail-rate-card[b-da2gcq9o5l] {
    margin-top: 0.9rem; padding: 0.8rem 0.9rem; border-radius: 10px;
    background: var(--rs-violet-subtle); border: 1px solid var(--rs-violet);
}
.detail-rate-title[b-da2gcq9o5l] { font-weight: 800; font-size: 0.85rem; color: var(--rs-on-violet-subtle); margin-bottom: 0.4rem; }
.detail-rate-buttons[b-da2gcq9o5l] { display: flex; gap: 0.5rem; margin: 0.4rem 0; }
.detail-rate-btn[b-da2gcq9o5l] {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem;
    padding: 0.45rem 0.6rem; border-radius: 8px; border: 1px solid #c4b5fd; background: var(--rs-surface);
    font-weight: 700; font-size: 0.82rem; color: var(--rs-on-violet-subtle); cursor: pointer;
}
.detail-rate-btn.selected.good[b-da2gcq9o5l] { background: var(--rs-success-subtle); border-color: var(--rs-success); color: var(--rs-on-success-subtle); }
.detail-rate-btn.selected.bad[b-da2gcq9o5l] { background: var(--rs-danger-subtle); border-color: #fca5a5; color: var(--rs-on-danger-subtle); }
.detail-rate-done[b-da2gcq9o5l] { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.9rem; font-size: 0.82rem; color: var(--rs-on-surface); }

/* ===== MOTIVO DEL CIERRE =====
   Lo que se le explicó al usuario al cerrar su solicitud: se enseña con la misma tarjeta que su
   comentario, con la banda lateral que la marca como el desenlace. */
.detail-close-card[b-da2gcq9o5l] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-primary);
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.detail-close-text[b-da2gcq9o5l] {
    margin: 0.4rem 0 0;
    font-size: 0.85rem;
    line-height: 1.55;
    color: var(--rs-on-surface);
    white-space: pre-wrap;
}
/* /Pages/Flota/CensoPanel.razor.rz.scp.css */
/* Filtro de empresa. Mismas reglas que /flota y /lanzaderas: se repiten porque el CSS de Blazor
   está aislado por componente y no se puede referenciar el de otro. Si se toca el aspecto de los
   chips, hay que tocarlo en los tres sitios. */
.company-filter[b-flcstxecu3] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.company-chip[b-flcstxecu3] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    height: 34px;
    padding: 0 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.company-chip .material-icons-round[b-flcstxecu3] {
    font-size: 0.95rem;
}

.company-chip:hover[b-flcstxecu3] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.company-chip.active[b-flcstxecu3] {
    background: linear-gradient(120deg, #631656, #8b3d7c);
    color: var(--rs-on-primary);
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.25);
}

.uic-link[b-flcstxecu3] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--rs-primary-text, #420134);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.uic-link:hover[b-flcstxecu3] {
    text-decoration: underline;
}

.kpi-card-clickable[b-flcstxecu3] {
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.kpi-card-clickable:hover[b-flcstxecu3] {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.kpi-card-clickable.kpi-active[b-flcstxecu3] {
    border-color: var(--rs-primary, #420134) !important;
    background: var(--rs-primary-subtle, rgba(66, 1, 52, 0.04));
}
/* /Pages/Flota/DeleteTraficoDialog.razor.rz.scp.css */
.del-trafico-dialog[b-0meptql67r] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.del-trafico-head[b-0meptql67r] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.del-trafico-icon[b-0meptql67r] {
    color: var(--rs-danger);
    font-size: 1.6rem;
    flex: 0 0 auto;
}

.del-trafico-titles[b-0meptql67r] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.del-trafico-name[b-0meptql67r] {
    font-weight: 800;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.del-trafico-ef[b-0meptql67r] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.del-trafico-ef .material-icons-round[b-0meptql67r] { font-size: 0.95rem; }

.del-trafico-intro[b-0meptql67r] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    line-height: 1.4;
}

.del-trafico-intro b[b-0meptql67r] { font-weight: 700; }

.del-trafico-aviso[b-0meptql67r] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    line-height: 1.4;
}

.del-trafico-confirm[b-0meptql67r] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--rs-danger-subtle);
    background: var(--rs-danger-subtle);
    border-radius: 12px;
}

.del-trafico-confirm-label[b-0meptql67r] {
    font-size: 0.8rem;
    color: var(--rs-on-danger-subtle);
    font-weight: 600;
}

.del-trafico-confirm-label b[b-0meptql67r] { font-weight: 800; }

.del-trafico-confirm-input[b-0meptql67r] {
    box-sizing: border-box;
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

.del-trafico-confirm-input:focus[b-0meptql67r] {
    outline: none;
    border-color: var(--rs-danger);
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15);
}

.del-trafico-footer[b-0meptql67r] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.2rem;
}
/* /Pages/Flota/FlotaIndex.razor.rz.scp.css */
/* Las variables --rs-* se declaran por página (no son globales): estas son las mismas que usa
   Dashboard.razor.css, para que las tarjetas de indicador se vean idénticas en los dos sitios. */
.flota-topbar[b-w1xg2c0xor],
.kpi-grid[b-w1xg2c0xor] {
    --rs-primary: #420134;
    --rs-secondary: #92407d;
    --rs-outline-variant: #d5c1ca;
}

/* ===== Barra superior: KPIs a la izquierda, ámbito a la derecha ===== */
.flota-topbar[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.kpi-toggle[b-w1xg2c0xor] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    height: 34px;
    padding: 0 0.75rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.kpi-toggle:hover[b-w1xg2c0xor],
.kpi-toggle.active[b-w1xg2c0xor] {
    color: var(--rs-primary-text);
    border-color: var(--rs-primary);
}

.kpi-toggle .material-icons-round[b-w1xg2c0xor] { font-size: 1.05rem; }

/* El total sigue visible con los indicadores plegados: es el dato que más se mira. */
.kpi-toggle-resumen[b-w1xg2c0xor] {
    color: var(--rs-primary-text);
    font-weight: 600;
    padding-left: 0.5rem;
    border-left: 1px solid var(--rs-outline-variant);
}

/* ===== Indicadores (mismas tarjetas que /dashboard) ===== */
.kpi-grid[b-w1xg2c0xor] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.75rem;
}

.rs-bento-card[b-w1xg2c0xor] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

/* Menos alto que en el dashboard (allí es 1.5rem): aquí el protagonista es la tabla. */
.rs-stat-card[b-w1xg2c0xor] {
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rs-stat-label[b-w1xg2c0xor] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-secondary);
    display: block;
}

.rs-stat-value[b-w1xg2c0xor] {
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--rs-primary-text);
    line-height: 1.1;
}

/* ===== Filtro de empresa (ámbito) =====
   Mismas reglas que el filtro de /lanzaderas (LanzaderasIndex.razor.css). Se repiten aquí porque
   el CSS de Blazor está aislado por componente y no se puede referenciar el del otro; si se toca
   el aspecto de los chips, hay que tocarlo en los dos sitios. */
.company-filter[b-w1xg2c0xor] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.company-chip[b-w1xg2c0xor] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    height: 34px;
    padding: 0 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.company-chip .material-icons-round[b-w1xg2c0xor] {
    font-size: 0.95rem;
}

.company-chip:hover[b-w1xg2c0xor] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

/* ===== Casilla de comentarios ===== */
.comentario-celda[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 22px;
    cursor: pointer;
}

.comentario-texto[b-w1xg2c0xor] {
    /* Una línea con puntos suspensivos: el texto completo va en el tooltip, para que un
       comentario largo no descuadre el alto de la fila. */
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.comentario-vacio[b-w1xg2c0xor] {
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

.comentario-mas[b-w1xg2c0xor] {
    flex: none;
    background: var(--rs-shade);
    border-radius: 999px;
    padding: 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
}

.comentario-editor[b-w1xg2c0xor] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.comentario-acciones[b-w1xg2c0xor] {
    display: flex;
    gap: 0.3rem;
}

/* ===== Fila de filtros =====
   Los campos y sus botones a la izquierda; los accesos a censo y fuera de circuito empujados al
   extremo derecho con margin-left:auto. Con flex-wrap, en pantalla estrecha bajan a otra línea en
   vez de comprimir los campos. */
.flota-filtros[b-w1xg2c0xor] {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.flota-acciones[b-w1xg2c0xor] {
    margin-left: auto;
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

/* ===== Matrícula =====
   Es un <button> porque abre un diálogo, no navega. Se le da aspecto de enlace para que siga
   leyéndose como lo que es: la puerta a la ficha del vagón. */
.uic-link[b-w1xg2c0xor] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--rs-primary-text);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    text-underline-offset: 2px;
}

/* Sin subrayado en reposo: la columna entera de matrículas se leía como un bloque rayado.
   El subrayado aparece al apuntar o al llegar por teclado, que es cuando hace falta la pista. */
.uic-link:hover[b-w1xg2c0xor],
.uic-link:focus-visible[b-w1xg2c0xor] {
    text-decoration: underline;
}

.uic-link:focus-visible[b-w1xg2c0xor] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
    border-radius: 3px;
}

/* ===== Color de bloque en TODA la fila =====
   El fondo lo pinta OnRowRender sobre el <tr>, pero Radzen da fondo propio a las celdas y lo tapa.
   Las celdas HEREDAN el color de su fila en vez de volverse transparentes: una celda congelada es
   sticky y necesita fondo opaco propio, o deja pasar por debajo el contenido que se desplaza.

   Los nombres de clase son los que genera Radzen 7 y están comprobados contra su hoja de estilos:
   las filas son `tr.rz-data-row` y las celdas `td` / `.rz-cell-data`. NO existe
   `.rz-datatable-data` como contenedor de filas — apuntar ahí deja la regla sin aplicar y el
   color no aparece.

   Va con ::deep porque el grid es un componente hijo y el CSS de Blazor está aislado. */
.flota-grid[b-w1xg2c0xor]  tr.rz-data-row > td {
    background-color: inherit;
}

/* Las congeladas llevan además fondo propio de Radzen
   (`--rz-grid-frozen-cell-background-color`), o esas columnas saldrían grises sobre filas de
   color. Basta con `.rz-frozen-cell`, que llevan todas: las variantes que Radzen añade encima
   (`-left`, `-left-end`, `-right`…) dependen de la posición y cambiar de columna congelada no
   debe obligar a tocar esto. */
.flota-grid[b-w1xg2c0xor]  tr.rz-data-row > td.rz-frozen-cell {
    background: inherit;
}

/* El hover se marca con una sombra interior, no con un color de fondo: cambiar el fondo dejaría
   translúcidas las celdas congeladas justo mientras se recorre la tabla. El `background-color`
   se repite para ganar al hover propio de Radzen, que si no borraría el color del bloque. */
.flota-grid[b-w1xg2c0xor]  tr.rz-data-row:hover > td {
    background-color: inherit;
    box-shadow: inset 0 0 0 9999px rgba(15, 23, 42, 0.05);
}

/* La marca de fila seleccionada NO está aquí: la pinta OnCellRender como estilo en línea sobre
   cada celda. Radzen no aplica `rz-state-highlight` al fijar el valor seleccionado —comprobado
   con bUnit en RadzenGridRowRenderTests—, así que una regla contra esa clase quedaría muerta.

   El cursor sí, que es puramente visual. */
.flota-grid[b-w1xg2c0xor]  tr.rz-data-row {
    cursor: pointer;
}

/* ===== Celda de lanzadera =====
   El nombre NO se recorta con puntos suspensivos: si no cabe, parte de línea. Un nombre de
   lanzadera cortado no identifica nada, que es lo que pasaba antes. */
.lz-celda[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 22px;
    border-radius: 3px;
    transition: background 0.12s, box-shadow 0.12s;
}

.lz-celda.editable[b-w1xg2c0xor] {
    cursor: pointer;
}

.lz-celda.editable:hover[b-w1xg2c0xor] {
    background: rgba(99, 22, 86, 0.08);
    box-shadow: inset 0 -1px 0 rgba(99, 22, 86, 0.35);
}

.lz-punto[b-w1xg2c0xor] {
    flex: none;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.lz-nombre[b-w1xg2c0xor] {
    flex: 1;
    min-width: 0;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.lz-vacia[b-w1xg2c0xor] {
    flex: 1;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* El icono de acción solo asoma al pasar por encima: con ~500 filas, mostrarlo siempre sería una
   columna de iconos repetidos que no aporta nada. */
.lz-accion[b-w1xg2c0xor] {
    flex: none;
    font-size: 0.95rem;
    opacity: 0;
    transition: opacity 0.12s;
}

.lz-celda.editable:hover .lz-accion[b-w1xg2c0xor] {
    opacity: 0.55;
}

/* ===== Celdas corregibles del listado =====
   La pista de que una celda se puede editar solo aparece al pasar el ratón: con ~500 filas y seis
   columnas corregibles, marcarlas todas de continuo llenaría la tabla de ruido. */
.celda-corregible[b-w1xg2c0xor] {
    min-height: 22px;
}

.celda-corregible.editable[b-w1xg2c0xor] {
    cursor: text;
    border-radius: 3px;
    transition: background 0.12s, box-shadow 0.12s;
}

.celda-corregible.editable:hover[b-w1xg2c0xor] {
    background: rgba(99, 22, 86, 0.06);
    box-shadow: inset 0 -1px 0 rgba(99, 22, 86, 0.35);
}

.celda-editor[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.celda-acciones[b-w1xg2c0xor] {
    flex: none;
    display: flex;
    gap: 0.2rem;
}

/* ===== Leyenda de los bloques del listado ===== */
.grupo-leyenda[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

/* Acción del bloque de lanzadera acotado (simulación de preventivos). */
.lz-preventivos[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.grupo-chip[b-w1xg2c0xor] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.72rem;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.grupo-chip:hover[b-w1xg2c0xor] {
    border-color: var(--rs-primary-light);
}

/* El bloque activo se distingue por borde y sombra, no solo por color de fondo: el fondo ya lo
   usa el propio grupo y no puede servir además de indicador de selección (RF-44). */
.grupo-chip.active[b-w1xg2c0xor] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px rgba(99, 22, 86, 0.22);
}

.grupo-chip-n[b-w1xg2c0xor] {
    background: var(--rs-shade);
    border-radius: 999px;
    padding: 0 0.35rem;
    font-size: 0.68rem;
}

.grupo-chip-reset[b-w1xg2c0xor] {
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

/* ===== Subfiltro de rotación =====
   Segunda fila bajo la leyenda, solo con una lanzadera acotada. Misma familia que .grupo-chip
   pero sobre superficie neutra —el color del bloque ya lo lleva la pastilla de arriba— y con una
   sangría que lo lee como hijo de la leyenda, no como otro filtro suelto. */
.rotacion-leyenda[b-w1xg2c0xor] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    padding-left: 1rem;
}

.rotacion-etiqueta[b-w1xg2c0xor] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.rotacion-chip[b-w1xg2c0xor] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 600;
    font-size: 0.72rem;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

.rotacion-chip:hover[b-w1xg2c0xor] {
    border-color: var(--rs-primary-light);
    background: var(--rs-primary-subtle);
}

/* Mismo indicador de selección que el bloque: borde y sombra, nunca solo color (RF-44). */
.rotacion-chip.active[b-w1xg2c0xor] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px rgba(99, 22, 86, 0.22);
    color: var(--rs-primary-text);
}

.rotacion-chip-reset[b-w1xg2c0xor] {
    color: var(--rs-on-surface-variant);
}

.company-chip.active[b-w1xg2c0xor] {
    background: linear-gradient(120deg, #631656, #8b3d7c);
    color: var(--rs-on-primary);
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.25);
}

/* Modo oscuro: en lugar de repetir la paleta, se hereda la de :root
   (railsider-theme.css), que ya resuelve claro y oscuro. */
:root[data-theme="dark"] .flota-topbar[b-w1xg2c0xor],
:root[data-theme="dark"] .kpi-grid[b-w1xg2c0xor] {
    --rs-primary: inherit;
    --rs-secondary: inherit;
    --rs-outline-variant: inherit;
}
/* /Pages/Flota/MotivoOverrideDialog.razor.rz.scp.css */
/* Antes y después de la corrección. El valor nuevo destaca; el que se sustituye queda tachado,
   para que se lea de un vistazo qué se está reemplazando. */
.motivo-antes[b-y987gy3cv4] {
    text-decoration: line-through;
    opacity: 0.6;
}

.motivo-despues[b-y987gy3cv4] {
    font-weight: 700;
    color: var(--rs-primary-text);
}
/* /Pages/Flota/SelectorLanzaderaDialog.razor.rz.scp.css */
/* Radzen ya fuerza el diálogo a 100% de ancho por debajo de 768px, pero eso no basta si el
   contenido de dentro tiene un min-width fijo mayor que la pantalla. */
.lz-dlg-root[b-uc49o1fwnr] { min-width: 520px; }

@media (max-width: 768px) {
    .lz-dlg-root[b-uc49o1fwnr] { min-width: 0; }
}

/* ===== Navegación de semana =====
   Mismas reglas que el navegador de /lanzaderas (LanzaderasIndex.razor.css). Se repiten aquí
   porque el CSS de Blazor está aislado por componente y no se puede referenciar el del otro; si
   se toca el aspecto del navegador, hay que tocarlo en los dos sitios. */
.week-nav[b-uc49o1fwnr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.week-arrow[b-uc49o1fwnr] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.week-arrow:hover:not(:disabled)[b-uc49o1fwnr] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.week-arrow:disabled[b-uc49o1fwnr] {
    opacity: 0.4;
    cursor: not-allowed;
}

.week-pill[b-uc49o1fwnr] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: linear-gradient(120deg, #631656, #8b3d7c);
    color: var(--rs-on-primary);
    padding: 0.5rem 1.1rem;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.25);
}

.week-pill .material-icons-round[b-uc49o1fwnr] { font-size: 1.05rem; opacity: 0.85; }

.week-label[b-uc49o1fwnr] {
    font-weight: 700;
    font-size: 0.92rem;
    min-width: 180px;
    text-align: center;
}

.week-today[b-uc49o1fwnr] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.82rem;
    height: 38px;
    padding: 0 0.9rem;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.week-today:hover[b-uc49o1fwnr] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

/* ===== Días de la semana =====
   Chips, como el filtro de empresa del listado: es el mismo gesto de acotar. */
.dia-selector[b-uc49o1fwnr] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.dia-chip[b-uc49o1fwnr] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    min-width: 46px;
    height: 34px;
    padding: 0 0.6rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.dia-chip:hover:not(:disabled)[b-uc49o1fwnr] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.dia-chip.active[b-uc49o1fwnr] {
    background: linear-gradient(120deg, #631656, #8b3d7c);
    color: var(--rs-on-primary);
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.25);
}

.dia-chip:disabled[b-uc49o1fwnr] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ===== Dónde está el vagón ese día ===== */
.lz-situacion[b-uc49o1fwnr] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.85rem;
    flex-wrap: wrap;
}

.lz-situacion-vacia[b-uc49o1fwnr] {
    color: var(--rs-on-surface-variant);
    font-style: italic;
}

/* Cuánto aguanta donde ya está: es la referencia del cambio, así que acompaña siempre al "está
   en X" en vez de vivir en la columna de estimación, que se pisa con cada destino probado. */
.lz-sim-actual[b-uc49o1fwnr] {
    color: var(--rs-on-surface-variant);
}

.lz-sim-actual.pendiente[b-uc49o1fwnr] {
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* Mismo criterio que la tarjeta de estimación: preocupa si no llega ni a una rotación o si el
   preventivo vence durante el tráfico. */
.lz-sim-actual.riesgo[b-uc49o1fwnr] {
    color: var(--rs-on-warning-subtle);
}

/* ===== Cuerpo en dos columnas =====
   Izquierda a dónde va, derecha qué implica. Cada columna scrollea por su cuenta y con el mismo
   alto: así ni una lista de 40 lanzaderas ni una estimación larga alargan el diálogo, que era lo
   que obligaba a hacer scroll para llegar a los botones. */
.lz-cols[b-uc49o1fwnr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

/* En pantalla estrecha las columnas se apilan: dos columnas de 200 px no se leen. */
@media (max-width: 760px) {
    .lz-cols[b-uc49o1fwnr] {
        grid-template-columns: 1fr;
    }
}

.lz-col[b-uc49o1fwnr] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}

.lz-col-titulo[b-uc49o1fwnr] {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rs-secondary);
}

/* Tope de alto con scroll propio: hay muchas más lanzaderas de las que caben en pantalla, pero el
   diálogo no debe crecer por ello ni empujar los botones fuera de la vista.
   Es max-height y no height para que con pocas opciones no quede un marco medio vacío. */
.lz-lista[b-uc49o1fwnr],
.lz-sim[b-uc49o1fwnr] {
    max-height: 42vh;
    overflow-y: auto;
    padding-right: 0.25rem;
}

/* El estado vacío sí necesita cuerpo: centrado en un contenedor de 1 px de alto no se ve. */
.lz-sim:has(.lz-sim-vacia)[b-uc49o1fwnr] {
    min-height: 160px;
}

.lz-lista[b-uc49o1fwnr] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

/* Estado inicial de la columna derecha: sin destino elegido no hay nada que estimar, y dejarla
   en blanco parecería un fallo de carga. */
.lz-sim-vacia[b-uc49o1fwnr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    height: 100%;
    padding: 0 1rem;
    text-align: center;
    font-size: 0.8rem;
    color: var(--rs-on-surface-muted);
}

.lz-sim-vacia .material-icons-round[b-uc49o1fwnr] {
    font-size: 1.8rem;
    opacity: 0.45;
}

.lz-opcion[b-uc49o1fwnr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    text-align: left;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: 0.5rem 0.7rem;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

.lz-opcion:hover:not(:disabled)[b-uc49o1fwnr] {
    border-color: var(--rs-primary-light);
    background: var(--rs-surface);
}

/* La opción elegida se marca con borde y sombra, no solo con fondo: el punto de color ya lo usa
   la lanzadera y no puede servir además de indicador de selección (RF-44). */
.lz-opcion.sel[b-uc49o1fwnr] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px rgba(99, 22, 86, 0.2);
}

.lz-opcion:disabled[b-uc49o1fwnr] {
    cursor: not-allowed;
    opacity: 0.55;
}

.lz-opcion-punto[b-uc49o1fwnr] {
    flex: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

/* "Sin lanzadera" no tiene color propio: se dibuja como un hueco. */
.lz-opcion-ninguna[b-uc49o1fwnr] {
    background: transparent;
    border: 1px dashed var(--rs-outline-strong);
}

.lz-opcion-texto[b-uc49o1fwnr] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    flex: 1;
}

/* El nombre completo, sin recortar: es justo lo que no cabía en la columna del listado. */
.lz-opcion-nombre[b-uc49o1fwnr] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.lz-opcion-nota[b-uc49o1fwnr] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
}

/* Hipótesis de la simulación: plegadas de salida. El número de rotaciones es lo que se mira, pero
   quien quiera discutirlo tiene que poder ver con qué medias se ha sacado sin salir de aquí. */
.sim-hipotesis summary[b-uc49o1fwnr] {
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.8;
}

.sim-hipotesis ul[b-uc49o1fwnr] {
    margin: 0.35rem 0 0;
    padding-left: 1.1rem;
}

/* Las demás intervenciones pendientes, en pastillas: se leen de un vistazo y dejan claro que la
   que manda no es la única que viene. */
.sim-otros[b-uc49o1fwnr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.sim-otro[b-uc49o1fwnr] {
    background: var(--rs-shade);
    border-radius: 999px;
    padding: 0.05rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.sim-hipotesis li[b-uc49o1fwnr] {
    font-size: 0.75rem;
    line-height: 1.45;
    opacity: 0.85;
}
/* /Pages/Flota/TraficosIndex.razor.rz.scp.css */
/* Tráficos — la pantalla reproduce la hoja de cálculo que usan los operadores: la EF agrupa,
   y debajo cuelga una fila por ruta. Lo que en la hoja aparece una sola vez por EF (gancho,
   toneladas, longitud, rampa, responsable) vive en la cabecera de la tarjeta; lo que cambia de
   una ruta a otra, en la tabla. */

.tf-kpis[b-p2agi2ei2m] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.tf-kpi[b-p2agi2ei2m] {
    flex: 1 1 150px;
    min-width: 150px;
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.tf-kpi-valor[b-p2agi2ei2m] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.tf-kpi-etiqueta[b-p2agi2ei2m] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.65;
}

.tf-kpi--alerta[b-p2agi2ei2m] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
}

.tf-kpi--alerta .tf-kpi-valor[b-p2agi2ei2m] {
    color: var(--rs-warning);
}

/* --- Tarjeta de tráfico ------------------------------------------------------------------- */

.tf-card[b-p2agi2ei2m] {
    border: 1px solid var(--rs-shade);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 1rem;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.tf-card--inactivo[b-p2agi2ei2m] {
    opacity: 0.62;
}

.tf-card-head[b-p2agi2ei2m] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.8rem 1rem;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

/* Ident + stats van juntos para que el doble clic que abre la edición cubra todos los datos
   de la cabecera pero NO los botones de acción, que quedan fuera de este contenedor. */
.tf-card-datos[b-p2agi2ei2m] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    flex: 1 1 620px;
}

.tf-card-ident[b-p2agi2ei2m] {
    min-width: 210px;
}

/* Afordancia del doble clic: sin esto no hay forma de saber que la fila se puede editar. */
.tf-editable[b-p2agi2ei2m] {
    cursor: cell;
}

.tf-card-datos.tf-editable:hover[b-p2agi2ei2m] {
    background: rgba(255, 255, 255, 0.07);
    border-radius: 8px;
}

.tf-ef[b-p2agi2ei2m] {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.tf-nombre[b-p2agi2ei2m] {
    font-size: 0.78rem;
    opacity: 0.8;
}

/* Datos que en la hoja solo aparecen en la primera fila de cada EF. */
.tf-stats[b-p2agi2ei2m] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.4rem;
    flex: 1 1 420px;
}

.tf-stat[b-p2agi2ei2m] {
    min-width: 92px;
}

.tf-stat-lbl[b-p2agi2ei2m] {
    display: block;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    opacity: 0.72;
}

.tf-stat-val[b-p2agi2ei2m] {
    font-size: 0.9rem;
    font-weight: 600;
}

.tf-locos[b-p2agi2ei2m] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.15rem;
}

.tf-loco[b-p2agi2ei2m] {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.08rem 0.42rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    white-space: nowrap;
}

.tf-card-acciones[b-p2agi2ei2m] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    align-items: center;
}

/* Contador sobre el botón. Va en blanco y no en color de marca porque estos botones viven sobre
   la banda azul de la cabecera, donde un distintivo azul desaparecería. Cuando no hay nada que
   contar no se pinta: lo decide el .razor, aquí no hay variante para el cero. */
.tf-btn-cont[b-p2agi2ei2m] {
    position: relative;
    display: inline-flex;
}

.tf-cont[b-p2agi2ei2m] {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--rs-surface);
    color: var(--rs-primary-text);
    border: 1px solid var(--rs-shade);
    font-size: 0.63rem;
    font-weight: 700;
    line-height: 15px;
    text-align: center;
    /* Que no se coma el clic del botón que hay debajo. */
    pointer-events: none;
}

/* --- Tabla de rutas ----------------------------------------------------------------------- */

.tf-rutas-wrap[b-p2agi2ei2m] {
    overflow-x: auto;
}

.tf-rutas[b-p2agi2ei2m] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.tf-rutas th[b-p2agi2ei2m] {
    text-align: left;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.45rem 0.6rem;
    background: var(--rs-primary-subtle);
    border-bottom: 1px solid var(--rs-shade);
    white-space: nowrap;
}

.tf-rutas td[b-p2agi2ei2m] {
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    vertical-align: middle;
}

.tf-rutas tbody tr:hover[b-p2agi2ei2m] {
    background: var(--rs-primary-lighter);
}

.tf-rutas tr.tf-fila--editando[b-p2agi2ei2m] {
    background: var(--rs-info-subtle);
}

.tf-rutas tr.tf-fila--editando:hover[b-p2agi2ei2m] {
    background: var(--rs-info-subtle);
}

.tf-trayecto[b-p2agi2ei2m] {
    font-weight: 600;
    white-space: nowrap;
}

.tf-km[b-p2agi2ei2m] {
    font-size: 0.7rem;
    opacity: 0.6;
    font-weight: 400;
}

.tf-num[b-p2agi2ei2m] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.tf-vacio[b-p2agi2ei2m] {
    opacity: 0.35;
}

.tf-acciones-fila[b-p2agi2ei2m] {
    display: flex;
    gap: 0.2rem;
    justify-content: flex-end;
}

.tf-pista[b-p2agi2ei2m] {
    font-size: 0.72rem;
    opacity: 0.6;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.tf-sin-rutas[b-p2agi2ei2m] {
    padding: 0.9rem 1rem;
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--rs-warning-subtle);
}

/* Los editores en línea van estrechos para que la fila no se dispare de ancho. */
.tf-rutas .tf-in-txt[b-p2agi2ei2m] {
    width: 100%;
    min-width: 92px;
}

.tf-rutas .tf-in-num[b-p2agi2ei2m] {
    width: 72px;
}

.tf-rutas .tf-in-track[b-p2agi2ei2m] {
    min-width: 200px;
}

@media (max-width: 900px) {
    .tf-card-head[b-p2agi2ei2m] {
        flex-direction: column;
    }
}

/* --- Empty state: catálogo vacío, filtro de activos o búsqueda sin coincidencias ---------- */

.tf-empty[b-p2agi2ei2m] {
    --tf-navy: #1f3864;
    text-align: center;
    padding: 2.4rem 1.4rem 2rem;
    border: 1px dashed rgba(31, 56, 100, 0.22);
    border-radius: 16px;
    background:
        radial-gradient(ellipse at top, rgba(31, 56, 100, 0.07), transparent 58%),
        #fff;
    animation: tf-empty-in-b-p2agi2ei2m 0.35s ease-out;
}

.tf-empty--catalogo[b-p2agi2ei2m] {
    min-height: 28rem;
}

@keyframes tf-empty-in-b-p2agi2ei2m {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

.tf-empty-icon-wrap[b-p2agi2ei2m] {
    width: 72px;
    height: 72px;
    margin: 0 auto 1.05rem;
    border-radius: 20px;
    display: grid;
    place-items: center;
    color: var(--rs-on-primary);
    background: linear-gradient(145deg, #1f3864, #3a5a94);
    box-shadow: 0 12px 28px rgba(31, 56, 100, 0.28);
}

.tf-empty-icon-wrap[b-p2agi2ei2m]  .rzi {
    font-size: 2rem;
}

.tf-empty-icon-wrap--filtro[b-p2agi2ei2m] {
    background: linear-gradient(145deg, #64748b, #94a3b8);
    box-shadow: 0 10px 22px rgba(100, 116, 139, 0.22);
}

.tf-empty-title[b-p2agi2ei2m] {
    margin: 0 0 0.45rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--tf-navy);
    letter-spacing: -0.02em;
}

.tf-empty-sub[b-p2agi2ei2m] {
    margin: 0 auto 1.35rem;
    max-width: 38rem;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--rs-on-surface-variant);
}

.tf-empty-sub strong[b-p2agi2ei2m] {
    color: var(--tf-navy);
}

.tf-empty-acciones[b-p2agi2ei2m] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem;
    margin-bottom: 0.4rem;
}

.tf-empty-hint[b-p2agi2ei2m] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface-muted);
}

.tf-empty-preview[b-p2agi2ei2m] {
    margin: 1.8rem auto 0;
    max-width: 560px;
}

.tf-empty-preview-label[b-p2agi2ei2m] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
    margin-bottom: 0.55rem;
}

.tf-empty-ghost[b-p2agi2ei2m] {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(31, 56, 100, 0.1);
    background: var(--rs-surface);
    box-shadow: 0 14px 32px rgba(31, 56, 100, 0.1);
    transform: perspective(900px) rotateX(3deg);
    opacity: 0.78;
    pointer-events: none;
}

.tf-empty-ghost-head[b-p2agi2ei2m] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    background: var(--tf-navy);
    text-align: left;
}

.tf-empty-ghost-stats[b-p2agi2ei2m] {
    display: flex;
    gap: 1.1rem;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

.tf-empty-ghost-row[b-p2agi2ei2m] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.55rem 1rem;
    border-top: 1px solid var(--rs-shade-subtle);
    background: var(--rs-surface-container-low);
}

.tf-empty-ghost-row:last-child[b-p2agi2ei2m] {
    background: var(--rs-surface);
}

.tf-empty-ghost-ord[b-p2agi2ei2m] {
    width: 1.1rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
}

.tf-empty-bar[b-p2agi2ei2m] {
    display: block;
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.28);
}

.tf-empty-bar--ef[b-p2agi2ei2m] { width: 148px; height: 10px; margin-bottom: 0.35rem; background: var(--rs-surface); }
.tf-empty-bar--nombre[b-p2agi2ei2m] { width: 96px; height: 7px; background: rgba(255, 255, 255, 0.38); }
.tf-empty-bar--ruta[b-p2agi2ei2m] { flex: 1; height: 8px; background: var(--rs-info-subtle); }
.tf-empty-bar--corta[b-p2agi2ei2m] { max-width: 55%; }
.tf-empty-bar--celda[b-p2agi2ei2m] { width: 72px; flex: 0 0 72px; background: var(--rs-info-subtle); }

.tf-empty-pasos[b-p2agi2ei2m] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem;
    margin-top: 1.5rem;
}

.tf-empty-paso[b-p2agi2ei2m] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.38rem 0.75rem;
    border-radius: 999px;
    background: var(--rs-primary-subtle);
    color: var(--tf-navy);
    font-size: 0.78rem;
    font-weight: 600;
}

.tf-empty-paso[b-p2agi2ei2m]  .rzi {
    font-size: 1rem;
}

@media (max-width: 640px) {
    .tf-empty-ghost-stats[b-p2agi2ei2m] { display: none; }
    .tf-empty-bar--celda[b-p2agi2ei2m] { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .tf-empty[b-p2agi2ei2m] { animation: none; }
    .tf-empty-ghost[b-p2agi2ei2m] { transform: none; }
}
/* /Pages/Health/WagonHealthIndex.razor.rz.scp.css */
.wagon-health-card[b-qpva745g3a] {
    max-width: 1600px;
}

/* ===== Topbar ===== */
.index-topbar[b-qpva745g3a] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.topbar-title[b-qpva745g3a] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.topbar-title > .material-icons-round[b-qpva745g3a] {
    font-size: 2rem;
    color: var(--rs-primary-text);
}

.topbar-title-text[b-qpva745g3a] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.topbar-title-main[b-qpva745g3a] {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--rs-on-surface);
}

.topbar-title-sub[b-qpva745g3a] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
}

.index-topbar-actions[b-qpva745g3a] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.deep-toggle[b-qpva745g3a] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    cursor: pointer;
    user-select: none;
}

/* ===== Skeletons ===== */
.skeleton[b-qpva745g3a] {
    display: block;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-low) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-qpva745g3a 1.4s ease-in-out infinite;
}

@keyframes skeleton-shimmer-b-qpva745g3a {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

.skeleton-card[b-qpva745g3a] { cursor: default !important; pointer-events: none; }
.skeleton-icon[b-qpva745g3a] { width: 42px; height: 42px; border-radius: 12px; flex: 0 0 auto; }
.skeleton-line[b-qpva745g3a] { height: 16px; margin: 3px 0; }
.skeleton-thin[b-qpva745g3a] { height: 11px; }

.loading-hint[b-qpva745g3a] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
    padding: 0.5rem 0.25rem;
}

.spin[b-qpva745g3a] { animation: rotate-b-qpva745g3a 1.1s linear infinite; color: var(--rs-primary-text); }
@keyframes rotate-b-qpva745g3a { to { transform: rotate(360deg); } }

/* ===== KPIs ===== */
.kpi-row[b-qpva745g3a] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.75rem;
}

.kpi-card[b-qpva745g3a] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
    position: relative;
    overflow: hidden;
}

.kpi-card[b-qpva745g3a]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--rs-primary);
}

.kpi-icon[b-qpva745g3a] {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    flex: 0 0 auto;
}

.kpi-icon .material-icons-round[b-qpva745g3a] { font-size: 1.3rem; }

.kpi-body[b-qpva745g3a] { display: flex; flex-direction: column; line-height: 1.15; }

.kpi-value[b-qpva745g3a] {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.kpi-label[b-qpva745g3a] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
}

.kpi-card.kpi-red[b-qpva745g3a]::before { background: var(--rs-danger); }
.kpi-card.kpi-red .kpi-icon[b-qpva745g3a] { background: var(--rs-danger); }

.kpi-card.kpi-amber[b-qpva745g3a]::before { background: var(--rs-warning); }
.kpi-card.kpi-amber .kpi-icon[b-qpva745g3a] { background: var(--rs-warning); }

.kpi-card.kpi-blue[b-qpva745g3a]::before { background: var(--rs-info); }
.kpi-card.kpi-blue .kpi-icon[b-qpva745g3a] { background: var(--rs-info); }

.kpi-card.kpi-purple[b-qpva745g3a]::before { background: #7e22ce; }
.kpi-card.kpi-purple .kpi-icon[b-qpva745g3a] { background: #7e22ce; }

/* ===== Filtros (chips) ===== */
.filter-chips[b-qpva745g3a] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.chip[b-qpva745g3a] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.chip .material-icons-round[b-qpva745g3a] { font-size: 1rem; }

.chip:hover[b-qpva745g3a] {
    border-color: var(--rs-primary-light);
    background: var(--rs-primary-subtle);
}

.chip-count[b-qpva745g3a] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.chip-active[b-qpva745g3a] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-color: var(--rs-primary);
}

.chip-active .chip-count[b-qpva745g3a] {
    background: rgba(255, 255, 255, 0.22);
    color: var(--rs-on-primary);
}

.chip-gps.chip-active[b-qpva745g3a] { background: var(--rs-surface-inverse); border-color: #475569; }
.chip-batlow.chip-active[b-qpva745g3a] { background: var(--rs-warning); border-color: var(--rs-warning); }
.chip-batdrop.chip-active[b-qpva745g3a] { background: #b45309; border-color: #b45309; }
.chip-stuck.chip-active[b-qpva745g3a] { background: #0e7490; border-color: #0e7490; }

/* ===== Grid ===== */
.health-grid[b-qpva745g3a] {
    border-radius: 12px;
    overflow: hidden;
}

.sev-badge[b-qpva745g3a] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.22rem 0.6rem;
    border-radius: 999px;
}

.sev-critical[b-qpva745g3a] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.sev-warning[b-qpva745g3a] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.sev-info[b-qpva745g3a] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }

.type-pill[b-qpva745g3a] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 0.22rem 0.55rem;
    border-radius: 8px;
    white-space: nowrap;
}

.type-pill .material-icons-round[b-qpva745g3a] { font-size: 0.95rem; }

.type-gpsobsoleto[b-qpva745g3a] { background: var(--rs-surface-container); color: var(--rs-on-surface); }
.type-bateriabaja[b-qpva745g3a] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.type-bateriacaida[b-qpva745g3a] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.type-parado[b-qpva745g3a] { background: var(--rs-cyan-subtle); color: var(--rs-on-cyan-subtle); }

.plate-cell[b-qpva745g3a] {
    font-weight: 800;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.85rem;
}

.plate-type[b-qpva745g3a] {
    display: block;
    font-size: 0.68rem;
    color: var(--rs-on-surface-muted);
    font-weight: 600;
}

.detail-msg[b-qpva745g3a] {
    color: var(--rs-on-surface);
    font-size: 0.84rem;
}

.detail-addr[b-qpva745g3a] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    margin-top: 2px;
}

.detail-addr .material-icons-round[b-qpva745g3a] { font-size: 0.85rem; }

.value-cell[b-qpva745g3a] {
    font-weight: 800;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

.gps-date[b-qpva745g3a] {
    font-size: 0.78rem;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.gps-none[b-qpva745g3a] { color: var(--rs-on-surface-disabled); font-style: italic; }

.row-actions[b-qpva745g3a] {
    display: flex;
    gap: 0.3rem;
}

/* ===== Footer ===== */
.report-footer[b-qpva745g3a] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-muted);
    padding-top: 0.4rem;
}

.report-footer .material-icons-round[b-qpva745g3a] { font-size: 1rem; }

.footer-warn[b-qpva745g3a] { color: var(--rs-on-warning-subtle); font-weight: 600; }

/* ===== Vacío ===== */
.index-empty[b-qpva745g3a] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 3.5rem 1.5rem;
    text-align: center;
}

.index-empty > .material-icons-round[b-qpva745g3a] {
    font-size: 3.4rem;
    color: var(--rs-success);
    opacity: 0.5;
}

.empty-title[b-qpva745g3a] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.empty-sub[b-qpva745g3a] {
    font-size: 0.88rem;
    color: var(--rs-on-surface-variant);
    max-width: 460px;
}

/* ===== Accesibilidad ===== */
@media (prefers-reduced-motion: reduce) {
    .skeleton[b-qpva745g3a], .spin[b-qpva745g3a] { animation: none !important; }
    .chip[b-qpva745g3a] { transition: none !important; }
}
/* /Pages/Issues/WagonIssuesIndex.razor.rz.scp.css */
/* Envoltorio de lista de Incidencias.

   Reproduce el de Inmovilizado (WagonStopsIndex.razor.css) para que las dos pantallas se lean
   igual: barra de herramientas, leyenda que filtra, conmutador de vista, filas-tarjeta y
   maestro-detalle. Está duplicado a propósito y no extraído a una hoja común: Inmovilizado ya
   está en producción y validado, y tocarlo para compartir estilos arriesga una pantalla que
   funciona a cambio de nada visible. Cuando las dos estén asentadas, se unifican. */

/* ── Filtro superior de pertenencia ──
   Las píldoras las pinta CompanyFilterBar (CSS propio); aquí solo su sitio: a la derecha,
   sobre el panel de filtros. */
.pertenencia-row[b-e3bs0dchg9] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}

/* ── KPI ─────────────────────────────────────────────────────────────────── */
.kpi-inc[b-e3bs0dchg9] { display: flex; gap: 12px; flex-wrap: wrap; }

.kpi-card[b-e3bs0dchg9] {
    flex: 1 1 180px;
    min-width: 160px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
}

.kpi-card-abiertas[b-e3bs0dchg9] { background: var(--rs-warning-subtle); border-color: var(--rs-warning); }
.kpi-card-abiertas .kpi-valor[b-e3bs0dchg9] { color: var(--rs-on-warning-subtle); }
.kpi-card-total[b-e3bs0dchg9] { background: var(--rs-info-subtle); border-color: var(--rs-info); }
.kpi-card-total .kpi-valor[b-e3bs0dchg9] { color: var(--rs-on-info-subtle); }
.kpi-label[b-e3bs0dchg9] { font-size: 0.75rem; color: var(--rs-on-surface-variant); font-weight: 500; }
.kpi-valor[b-e3bs0dchg9] { font-size: 1.35rem; font-weight: 700; color: var(--rs-on-surface); line-height: 1.1; }
.kpi-sub[b-e3bs0dchg9] { font-size: 0.72rem; color: var(--rs-on-surface-muted); }

/* ── Barra de herramientas de la lista ───────────────────────────────────── */
.list-toolbar[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 2px 0;
}

.tb-sort[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--rs-on-surface-variant);
}

.tb-sort .material-icons-round[b-e3bs0dchg9] { font-size: 18px; }

.tb-sort[b-e3bs0dchg9]  .rz-dropdown {
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
}

.tb-sort[b-e3bs0dchg9]  .rz-dropdown:hover { border-color: var(--rs-outline-strong); }

.tb-sort[b-e3bs0dchg9]  .rz-dropdown-label {
    font-size: 0.8rem;
    color: var(--rs-on-surface);
    padding-top: 4px;
}

.toolbar-count[b-e3bs0dchg9] {
    margin-left: auto;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

/* ── Leyenda de tipos + conmutador de vista ──────────────────────────────── */
.leyenda-row[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tipo-leyenda[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.leyenda-chip[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px 3px 4px;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .12s, border-color .12s, color .12s;
}

.leyenda-chip:hover[b-e3bs0dchg9] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

.leyenda-chip.activo[b-e3bs0dchg9] {
    border-color: var(--rs-primary);
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

/* Con algo marcado, lo no marcado se apaga: se ve de un vistazo qué está filtrando. */
.tipo-leyenda:has(.leyenda-chip.activo) .leyenda-chip:not(.activo)[b-e3bs0dchg9] { opacity: 0.55; }

.leyenda-cuenta[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
    font-size: 0.68rem;
    font-weight: 700;
}

.leyenda-chip.activo .leyenda-cuenta[b-e3bs0dchg9] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

.leyenda-reset[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 9px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--rs-on-surface-muted);
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
}

.leyenda-reset:hover[b-e3bs0dchg9] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

.view-switch[b-e3bs0dchg9] {
    display: inline-flex;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    overflow: hidden;
    background: var(--rs-surface);
}

.vs-opt[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 30px;
    border: 0;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    transition: background-color .12s, color .12s;
}

.vs-opt:hover[b-e3bs0dchg9] { color: var(--rs-on-surface); }

.vs-opt.activo[b-e3bs0dchg9] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

/* ── Estados ─────────────────────────────────────────────────────────────── */
.tag-cerrada[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.tag-manual[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--rs-violet-subtle);
    color: var(--rs-on-violet-subtle);
    font-size: 0.66rem;
    font-weight: 700;
}

.dias-chip[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.dias-chip.aviso[b-e3bs0dchg9] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.dias-chip.grave[b-e3bs0dchg9] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }

.list-empty[b-e3bs0dchg9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 42px 16px;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
    color: var(--rs-on-surface-variant);
}

/* ── Vista filas-tarjeta ─────────────────────────────────────────────────── */
.rowcards[b-e3bs0dchg9] { display: flex; flex-direction: column; gap: 8px; }

.rowcard[b-e3bs0dchg9] {
    display: grid;
    grid-template-columns: minmax(190px, 1.1fr) minmax(170px, 1.2fr) minmax(150px, 1fr) minmax(190px, 1.3fr) auto;
    align-items: start;
    gap: 14px;
    padding: 10px 14px;
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline);
    border-radius: 10px;
    background: var(--rs-surface);
    cursor: pointer;
    transition: box-shadow .15s, border-color .15s, transform .05s;
}

.rowcard:hover[b-e3bs0dchg9] {
    box-shadow: var(--rs-shadow-sm);
    border-color: var(--rs-outline-strong);
}

.rowcard:active[b-e3bs0dchg9] { transform: translateY(1px); }
.rowcard.cerrada[b-e3bs0dchg9] { opacity: 0.72; border-left-color: var(--rs-neutral); }
.rowcard.abierta[b-e3bs0dchg9] { border-left-color: var(--rs-danger); }

.rc-ident[b-e3bs0dchg9] { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.rc-col[b-e3bs0dchg9] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.rc-plate[b-e3bs0dchg9] { font-size: 0.95rem; font-weight: 700; color: var(--rs-on-surface); }

.rc-sub[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 0.75rem;
    color: var(--rs-on-surface-variant);
}

.rc-lbl[b-e3bs0dchg9] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--rs-on-surface-muted);
}

.rc-txt[b-e3bs0dchg9] {
    font-size: 0.82rem;
    color: var(--rs-on-surface);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rc-muted[b-e3bs0dchg9] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-variant);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rc-obs[b-e3bs0dchg9] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rc-ops[b-e3bs0dchg9] { justify-self: end; display: flex; gap: 4px; }

/* Icono de tipo de incidencia: la inicial dentro de un cuadrado de color. */
.ic-chip[b-e3bs0dchg9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.78rem;
    color: var(--rs-on-primary);
    letter-spacing: 0.5px;
    flex: 0 0 auto;
}

.ic-chip.mini[b-e3bs0dchg9] { width: 20px; height: 20px; border-radius: 5px; font-size: 0.68rem; }
.ic-chip.grande[b-e3bs0dchg9] { width: 34px; height: 34px; font-size: 0.95rem; }

/* Seis colores en rotación por tipo de incidencia. No tienen significado propio: solo sirven
   para distinguir de un vistazo, y son estables porque el índice sale del nombre ordenado. */
.ic-chip.c0[b-e3bs0dchg9] { background: var(--rs-danger); }
.ic-chip.c1[b-e3bs0dchg9] { background: var(--rs-info); }
.ic-chip.c2[b-e3bs0dchg9] { background: var(--rs-violet); }
.ic-chip.c3[b-e3bs0dchg9] { background: var(--rs-warning); }
.ic-chip.c4[b-e3bs0dchg9] { background: var(--rs-steel); }
.ic-chip.c5[b-e3bs0dchg9] { background: var(--rs-cyan); }

/* ── Vista maestro-detalle ───────────────────────────────────────────────── */
.md-layout[b-e3bs0dchg9] {
    display: grid;
    grid-template-columns: minmax(260px, 340px) 1fr;
    gap: 12px;
    align-items: start;
}

.md-list[b-e3bs0dchg9] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 620px;
    overflow-y: auto;
    padding-right: 4px;
}

.md-item[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border: 1px solid transparent;
    border-radius: 9px;
    cursor: pointer;
    transition: background-color .12s, border-color .12s;
}

.md-item:hover[b-e3bs0dchg9] { background: var(--rs-surface-container); }

.md-item.sel[b-e3bs0dchg9] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
}

.md-item.cerrada[b-e3bs0dchg9] { opacity: 0.72; }
.md-item-txt[b-e3bs0dchg9] { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
.md-item-plate[b-e3bs0dchg9] { font-size: 0.85rem; font-weight: 700; color: var(--rs-on-surface); }

.md-item-sub[b-e3bs0dchg9] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.md-item-right[b-e3bs0dchg9] { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; }

.md-detail[b-e3bs0dchg9] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: 14px 16px;
    min-height: 260px;
}

.md-detail-empty[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    color: var(--rs-on-surface-muted);
    font-size: 0.9rem;
}

.md-head[b-e3bs0dchg9] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.md-plate[b-e3bs0dchg9] { font-size: 1.05rem; font-weight: 700; }
.md-head-spacer[b-e3bs0dchg9] { flex: 1; }

.md-grid[b-e3bs0dchg9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px 18px;
    padding: 12px 0;
}

.md-campo[b-e3bs0dchg9] { display: flex; flex-direction: column; gap: 1px; min-width: 0; }

.md-campo-lbl[b-e3bs0dchg9] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--rs-on-surface-muted);
}

.md-campo-val[b-e3bs0dchg9] {
    font-size: 0.85rem;
    color: var(--rs-on-surface);
    overflow-wrap: anywhere;
}

.md-bloque[b-e3bs0dchg9] { padding-top: 10px; border-top: 1px solid var(--rs-outline-variant); }
.md-bloque-lbl[b-e3bs0dchg9] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--rs-on-surface-muted);
    display: block;
    margin-bottom: 3px;
}

.md-bloque-txt[b-e3bs0dchg9] {
    font-size: 0.85rem;
    color: var(--rs-on-surface);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.md-ops[b-e3bs0dchg9] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding-top: 12px;
    border-top: 1px solid var(--rs-outline-variant);
}

@media (max-width: 900px) {
    .md-layout[b-e3bs0dchg9] { grid-template-columns: 1fr; }
    .md-list[b-e3bs0dchg9] { max-height: 280px; }
    .rowcard[b-e3bs0dchg9] { grid-template-columns: 1fr; }
    .rc-ops[b-e3bs0dchg9] { justify-self: start; }
}
/* /Pages/Lanzaderas/CloneRotacionDialog.razor.rz.scp.css */
.clone-dialog[b-29ox3p8hkd] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.25rem;
}

/* ===== Origen ===== */
.clone-source[b-29ox3p8hkd] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem 1rem;
    border-radius: 12px;
    background: var(--rs-primary-subtle);
    border: 1px solid var(--rs-outline);
    border-left: 4px solid var(--c, var(--rs-primary));
}

.clone-source-icon[b-29ox3p8hkd] {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--c, var(--rs-primary));
    color: var(--rs-on-primary);
    flex: 0 0 auto;
}

.clone-source-icon .material-icons-round[b-29ox3p8hkd] { font-size: 1.2rem; }

.clone-source-body[b-29ox3p8hkd] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.clone-source-day[b-29ox3p8hkd] {
    font-size: 0.92rem;
    color: var(--rs-on-surface);
}

.clone-source-day strong[b-29ox3p8hkd] { font-weight: 800; }

.clone-source-route[b-29ox3p8hkd] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.clone-source-route .material-icons-round[b-29ox3p8hkd] { font-size: 0.95rem; }

/* ===== Secciones ===== */
.clone-section-label[b-29ox3p8hkd] {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
}

/* ===== Acciones rápidas ===== */
.clone-quick[b-29ox3p8hkd] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.clone-quick-btn[b-29ox3p8hkd] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.76rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.clone-quick-btn .material-icons-round[b-29ox3p8hkd] { font-size: 0.95rem; }

.clone-quick-btn:hover:not(:disabled)[b-29ox3p8hkd] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.clone-quick-btn:disabled[b-29ox3p8hkd] { opacity: 0.5; cursor: default; }

/* ===== Días ===== */
.clone-days[b-29ox3p8hkd] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}

@media (min-width: 460px) {
    .clone-days[b-29ox3p8hkd] { grid-template-columns: repeat(3, 1fr); }
}

.clone-day[b-29ox3p8hkd] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.7rem;
    border: 2px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, transform 0.12s, box-shadow 0.15s;
    text-align: left;
}

.clone-day:hover[b-29ox3p8hkd] {
    border-color: var(--rs-outline);
    transform: translateY(-1px);
}

.clone-day-check[b-29ox3p8hkd] {
    display: inline-flex;
    color: var(--rs-on-surface-disabled);
    flex: 0 0 auto;
}

.clone-day-check .material-icons-round[b-29ox3p8hkd] { font-size: 1.2rem; }

.clone-day-label[b-29ox3p8hkd] {
    flex: 1;
    min-width: 0;
}

.clone-day.sel[b-29ox3p8hkd] {
    border-color: var(--c, var(--rs-primary));
    background: color-mix(in srgb, var(--c, var(--rs-primary)) 8%, var(--rs-surface));
    box-shadow: 0 2px 8px color-mix(in srgb, var(--c, #631656) 22%, transparent);
}

.clone-day.sel .clone-day-check[b-29ox3p8hkd] { color: var(--c, var(--rs-primary)); }

/* aviso sobrescritura */
.clone-day-warn[b-29ox3p8hkd] {
    display: inline-flex;
    color: var(--rs-warning);
    flex: 0 0 auto;
}

.clone-day-warn .material-icons-round[b-29ox3p8hkd] { font-size: 1rem; }

.clone-day.has-rot[b-29ox3p8hkd] { border-style: dashed; }
.clone-day.has-rot.sel[b-29ox3p8hkd] { border-style: solid; }

/* ===== Banner de aviso ===== */
.clone-warn-banner[b-29ox3p8hkd] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border: 1px solid var(--rs-warning-subtle);
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
}

.clone-warn-banner .material-icons-round[b-29ox3p8hkd] { font-size: 1.05rem; color: var(--rs-warning); }

/* ===== Footer ===== */
.clone-footer[b-29ox3p8hkd] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

/* Dia ya circulado: se ve en la rejilla para no perder la referencia de la semana,
   pero no es un destino posible. */
.clone-day.past[b-29ox3p8hkd] {
    border-style: dashed;
    border-color: var(--rs-outline-variant);
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-muted);
    cursor: not-allowed;
    font-weight: 600;
}

.clone-day.past:hover[b-29ox3p8hkd] {
    transform: none;
    border-color: var(--rs-outline-variant);
}
/* /Pages/Lanzaderas/DeleteLanzaderaScopeDialog.razor.rz.scp.css */
.del-scope-dialog[b-a4q7ja3gyt] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.del-scope-head[b-a4q7ja3gyt] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.del-scope-color[b-a4q7ja3gyt] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex: 0 0 auto;
    border: 2px solid var(--rs-surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.del-scope-titles[b-a4q7ja3gyt] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.del-scope-name[b-a4q7ja3gyt] {
    font-weight: 800;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.del-scope-week[b-a4q7ja3gyt] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.del-scope-week .material-icons-round[b-a4q7ja3gyt] { font-size: 0.95rem; }

.del-scope-intro[b-a4q7ja3gyt] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    font-weight: 600;
}

.del-scope-option[b-a4q7ja3gyt] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    width: 100%;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.del-scope-option:hover[b-a4q7ja3gyt] {
    border-color: var(--rs-primary-light);
    background: var(--rs-primary-subtle);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.del-scope-icon[b-a4q7ja3gyt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    flex: 0 0 auto;
    color: var(--rs-on-primary);
}

.del-scope-icon .material-icons-round[b-a4q7ja3gyt] { font-size: 1.25rem; }

.del-scope-icon-amber[b-a4q7ja3gyt] { background: var(--rs-warning); }
.del-scope-icon-red[b-a4q7ja3gyt] { background: var(--rs-danger); }
.del-scope-icon-slate[b-a4q7ja3gyt] { background: #64748b; }

/* Variante no clicable (la acción está en los chips internos). */
.del-scope-option-static[b-a4q7ja3gyt] { cursor: default; }
.del-scope-option-static:hover[b-a4q7ja3gyt] {
    border-color: var(--rs-outline-variant);
    background: transparent;
    box-shadow: none;
}

.del-scope-chips[b-a4q7ja3gyt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.del-scope-chip[b-a4q7ja3gyt] {
    all: unset;
    box-sizing: border-box;
    padding: 0.3rem 0.6rem;
    border: 1px solid var(--rs-warning);
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.del-scope-chip:hover[b-a4q7ja3gyt] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
}

/* El chip "Otro" queda marcado mientras el area de texto esta abierta. */
.del-scope-chip-on[b-a4q7ja3gyt] {
    background: var(--rs-warning);
    border-color: var(--rs-warning);
    color: var(--rs-on-primary);
}

.del-scope-motivo[b-a4q7ja3gyt] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.del-scope-motivo-label[b-a4q7ja3gyt] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    line-height: 1.35;
}

.del-scope-motivo-input[b-a4q7ja3gyt] {
    box-sizing: border-box;
    width: 100%;
    resize: vertical;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font: inherit;
    font-size: 0.82rem;
    line-height: 1.4;
}

.del-scope-motivo-input:focus[b-a4q7ja3gyt] {
    outline: none;
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px var(--rs-primary-subtle);
}

.del-scope-motivo-foot[b-a4q7ja3gyt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.del-scope-motivo-count[b-a4q7ja3gyt] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface-muted);
}

.del-scope-text[b-a4q7ja3gyt] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.del-scope-opt-title[b-a4q7ja3gyt] {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--rs-on-surface);
}

.del-scope-opt-sub[b-a4q7ja3gyt] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    line-height: 1.35;
}

/* Opción de borrado seleccionada, pendiente de confirmación escrita. */
.del-scope-option-selected[b-a4q7ja3gyt],
.del-scope-option-selected:hover[b-a4q7ja3gyt] {
    border-color: var(--rs-danger);
    background: var(--rs-danger-subtle);
    box-shadow: 0 0 0 1px #dc2626 inset;
}

.del-scope-confirm[b-a4q7ja3gyt] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--rs-danger-subtle);
    background: var(--rs-danger-subtle);
    border-radius: 12px;
}

.del-scope-confirm-label[b-a4q7ja3gyt] {
    font-size: 0.8rem;
    color: var(--rs-on-danger-subtle);
    font-weight: 600;
}

.del-scope-confirm-label b[b-a4q7ja3gyt] { font-weight: 800; }

.del-scope-confirm-input[b-a4q7ja3gyt] {
    box-sizing: border-box;
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

.del-scope-confirm-input:focus[b-a4q7ja3gyt] {
    outline: none;
    border-color: var(--rs-danger);
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15);
}

.del-scope-footer[b-a4q7ja3gyt] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.2rem;
}
/* /Pages/Lanzaderas/DeleteReservaDialog.razor.rz.scp.css */
.del-reserva-dialog[b-4r6u8qr57u] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.del-reserva-head[b-4r6u8qr57u] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.del-reserva-color[b-4r6u8qr57u] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex: 0 0 auto;
    border: 2px solid var(--rs-surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.del-reserva-titles[b-4r6u8qr57u] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.del-reserva-name[b-4r6u8qr57u] {
    font-weight: 800;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.del-reserva-terminal[b-4r6u8qr57u] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.del-reserva-terminal .material-icons-round[b-4r6u8qr57u] { font-size: 0.95rem; }

.del-reserva-intro[b-4r6u8qr57u] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    line-height: 1.4;
}

.del-reserva-intro b[b-4r6u8qr57u] { font-weight: 700; }

.del-reserva-confirm[b-4r6u8qr57u] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--rs-danger-subtle);
    background: var(--rs-danger-subtle);
    border-radius: 12px;
}

.del-reserva-confirm-label[b-4r6u8qr57u] {
    font-size: 0.8rem;
    color: var(--rs-on-danger-subtle);
    font-weight: 600;
}

.del-reserva-confirm-label b[b-4r6u8qr57u] { font-weight: 800; }

.del-reserva-confirm-input[b-4r6u8qr57u] {
    box-sizing: border-box;
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

.del-reserva-confirm-input:focus[b-4r6u8qr57u] {
    outline: none;
    border-color: var(--rs-danger);
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15);
}

.del-reserva-footer[b-4r6u8qr57u] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.2rem;
}
/* /Pages/Lanzaderas/EditGanttCellDialog.razor.rz.scp.css */
.edit-gantt-dialog[b-89pqijn97c] {
    padding: 0.5rem;
    min-width: 340px;
}

@media (max-width: 480px) {
    .edit-gantt-dialog[b-89pqijn97c] { min-width: 0; }
}

.edit-route-label[b-89pqijn97c] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--rs-primary-text);
    padding: 0.5rem 0.7rem;
    background: var(--rs-primary-subtle);
    border-radius: 8px;
    margin-bottom: 1rem;
}

.edit-route-label .material-icons-round[b-89pqijn97c] {
    font-size: 1rem;
}

.edit-row[b-89pqijn97c] {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
}

.edit-arrow[b-89pqijn97c] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
    padding-bottom: 0.6rem;
}

.edit-footer[b-89pqijn97c] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
/* /Pages/Lanzaderas/EnviarAReservaDialog.razor.rz.scp.css */
.env-res[b-hi0utlqp8n] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    min-width: 440px;
}

@media (max-width: 768px) {
    .env-res[b-hi0utlqp8n] { min-width: 0; }
}

.env-res-ctx[b-hi0utlqp8n] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.env-res-ctx .material-icons-round[b-hi0utlqp8n] { font-size: 1rem; }

.env-res-intro[b-hi0utlqp8n] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    line-height: 1.4;
}

.env-res-solo[b-hi0utlqp8n],
.env-res-row[b-hi0utlqp8n] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface-container-low);
}

.env-res-list[b-hi0utlqp8n] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 420px;
    overflow-y: auto;
}

.env-res-row[b-hi0utlqp8n] { cursor: pointer; }

.env-res-row:hover[b-hi0utlqp8n] { background: var(--rs-surface-container); }

.env-res-row input[type="checkbox"][b-hi0utlqp8n] {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    accent-color: var(--rs-primary);
    cursor: pointer;
}

.env-res-plate[b-hi0utlqp8n] {
    font-weight: 700;
    font-size: 0.87rem;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.env-res-tipo[b-hi0utlqp8n] {
    font-size: 0.76rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.env-res-empty[b-hi0utlqp8n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8rem 0.9rem;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
    font-size: 0.83rem;
    color: var(--rs-on-surface-variant);
}

.env-res-warn[b-hi0utlqp8n] {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--rs-warning-subtle);
    background: var(--rs-warning-subtle);
    border-radius: 12px;
    font-size: 0.8rem;
    color: var(--rs-on-warning-subtle);
    line-height: 1.4;
}

.env-res-warn .material-icons-round[b-hi0utlqp8n] {
    font-size: 1.05rem;
    flex: 0 0 auto;
}

.env-res-warn b[b-hi0utlqp8n] { font-weight: 800; }

.env-res-warn-sub[b-hi0utlqp8n] {
    margin-top: 0.2rem;
    font-size: 0.74rem;
    color: var(--rs-on-warning-subtle);
}

.env-res-footer[b-hi0utlqp8n] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.2rem;
}

/* Planificación que el vagón conserva por delante y que el alta en reserva va a borrar. */
.env-res-plan[b-hi0utlqp8n] {
    margin-left: auto;
    flex: 0 0 auto;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

/* Confirmación de lo destructivo: solo aparece si hay marcado algo que borre planificación. */
.env-res-danger[b-hi0utlqp8n] {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--rs-danger);
    background: var(--rs-danger-subtle);
    border-radius: 12px;
    font-size: 0.8rem;
    color: var(--rs-on-danger-subtle);
    line-height: 1.4;
}

.env-res-danger .material-icons-round[b-hi0utlqp8n] {
    font-size: 1.05rem;
    flex: 0 0 auto;
}

.env-res-danger b[b-hi0utlqp8n] { font-weight: 800; }

.env-res-danger-sub[b-hi0utlqp8n] {
    margin-top: 0.2rem;
    font-size: 0.74rem;
    color: var(--rs-on-danger-subtle);
    opacity: 0.85;
}
/* /Pages/Lanzaderas/FixedShuttleTimeline.razor.rz.scp.css */
/* Histórico de una lanzadera fija. Todo el color sale de los tokens semánticos de
   railsider-theme.css: un literal aquí se quedaría claro en modo oscuro.

   La pantalla es UNA tarjeta (.ft-shell). Cabecera, composición, resumen, filtros e histórico
   son secciones de esa tarjeta separadas por líneas: nada flota suelto sobre el fondo de la
   página. Dentro, los bloques secundarios (tarjetas de resumen, tarjetas de circulación) van
   sobre un contenedor un punto más bajo que la superficie para que se lean como piezas de la
   misma tarjeta y no como tarjetas dentro de tarjetas.

   El único color de datos es el de la lanzadera (--ft-color, puesto por la página en el
   contenedor). Nunca se usa como fondo de texto: se mezcla con la superficie (color-mix) o se
   aplica a elementos sin texto encima (raíl, barras). */

.ft-page[b-16vqgy140q] {
    padding: 1.25rem 1.5rem 2rem;
    max-width: 1240px;
    margin: 0 auto;
}

.ft-loading[b-16vqgy140q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 4rem 0;
    color: var(--rs-on-surface-variant);
}

/* ── La tarjeta ───────────────────────────────────────────────────────────── */

.ft-shell[b-16vqgy140q] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 18px;
    box-shadow: var(--rs-shadow-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Cada sección separa de la anterior con una línea; la cabecera lleva el raíl de color
   de la lanzadera como borde superior de toda la tarjeta. */
.ft-shell > * + *[b-16vqgy140q] {
    border-top: 1px solid var(--rs-outline-variant);
}

/* ── Cabecera ─────────────────────────────────────────────────────────────── */

.ft-hero[b-16vqgy140q] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1.1rem 1.4rem 1rem;
    border-top: 5px solid var(--ft-color);
    /* Un velo del color de la lanzadera en la esquina: identifica sin gritar. */
    background-image: radial-gradient(circle at 100% 0%,
        color-mix(in srgb, var(--ft-color) 14%, transparent) 0,
        transparent 45%);
}

.ft-hero-main[b-16vqgy140q] {
    display: flex;
    align-items: stretch;
    gap: 0.9rem;
    min-width: 0;
    flex: 1 1 520px;
}

.ft-back[b-16vqgy140q] {
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--rs-on-surface-variant);
    transition: background .15s ease, color .15s ease;
    flex-shrink: 0;
    align-self: flex-start;
}

.ft-back:hover[b-16vqgy140q] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
}

.ft-back:focus-visible[b-16vqgy140q],
.ft-rail-edit:focus-within[b-16vqgy140q],
.ft-name-edit:focus-visible[b-16vqgy140q],
.ft-chipbtn:focus-visible[b-16vqgy140q],
.ft-chip:focus-visible[b-16vqgy140q],
.ft-tag.is-link:focus-visible[b-16vqgy140q],
.ft-comp-src.is-link:focus-visible[b-16vqgy140q],
.ft-clear-all:focus-visible[b-16vqgy140q] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

/* Barra de color de la lanzadera. Vertical y no un punto: se lee como el raíl que
   recorre la página de arriba abajo. */
.ft-rail[b-16vqgy140q] {
    width: 6px;
    align-self: stretch;
    min-height: 42px;
    border-radius: 3px;
    flex-shrink: 0;
    background: var(--ft-color);
}

/* Con permiso de edición el raíl es además el selector de color: el input nativo va encima,
   invisible, y el envoltorio le da un área de clic que una barra de 6 px no tiene. */
.ft-rail-edit[b-16vqgy140q] {
    position: relative;
    align-self: stretch;
    display: flex;
    align-items: stretch;
    padding: 0 5px;
    margin: 0 -5px;
    border-radius: 6px;
    cursor: pointer;
    flex-shrink: 0;
}

.ft-rail-edit:hover .ft-rail[b-16vqgy140q] {
    box-shadow: 0 0 0 3px var(--rs-shade);
}

.ft-rail-input[b-16vqgy140q] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
}

.ft-hero-text[b-16vqgy140q] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ft-hero-title[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.ft-hero-title h1[b-16vqgy140q] {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    letter-spacing: -0.01em;
}

/* El nombre se edita en el sitio: doble clic sobre el título o el lápiz de al lado. El subrayado
   discontinuo es lo único que anuncia que el título es editable. */
.ft-name-editable[b-16vqgy140q] {
    cursor: text;
    border-bottom: 1px dashed var(--rs-outline);
    transition: border-color .15s ease;
}

.ft-name-editable:hover[b-16vqgy140q] {
    border-bottom-color: var(--rs-outline-strong);
}

.ft-name-edit[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    cursor: pointer;
    color: var(--rs-on-surface-variant);
    transition: background .15s ease, color .15s ease;
    flex-shrink: 0;
}

.ft-name-edit:hover[b-16vqgy140q] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
}

.ft-name-edit .material-icons-round[b-16vqgy140q] {
    font-size: 1rem;
}

.ft-name-input[b-16vqgy140q] {
    font-family: inherit;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    padding: 0.2rem 0.5rem;
    outline: none;
    min-width: 240px;
    max-width: 100%;
}

.ft-name-input:focus[b-16vqgy140q] {
    border-color: var(--rs-primary);
    background: var(--rs-surface);
}

.ft-pill[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.ft-pill .material-icons-round[b-16vqgy140q] {
    font-size: 14px;
}

.ft-pill-fija[b-16vqgy140q] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.ft-pill-inactiva[b-16vqgy140q] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.ft-pill-live[b-16vqgy140q] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

/* Punto que late: solo para "en curso". Es la única animación de la página y se
   apaga si el usuario pidió menos movimiento. */
.ft-live-dot[b-16vqgy140q] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rs-info);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--rs-info) 45%, transparent);
    animation: ft-pulse-b-16vqgy140q 1.8s ease-out infinite;
    flex-shrink: 0;
}

@keyframes ft-pulse-b-16vqgy140q {
    0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--rs-info) 45%, transparent); }
    70%  { box-shadow: 0 0 0 7px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}

@media (prefers-reduced-motion: reduce) {
    .ft-live-dot[b-16vqgy140q] { animation: none; }
    .ft-progress-fill[b-16vqgy140q], .ft-progress-train[b-16vqgy140q] { transition: none; }
}

.ft-hero-meta[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    font-size: 0.82rem;
    color: var(--rs-on-surface-variant);
}

.ft-hero-meta span[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.ft-hero-meta .material-icons-round[b-16vqgy140q] {
    font-size: 16px;
    color: var(--rs-on-surface-muted);
}

.ft-hero-actions[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ── Composición actual ───────────────────────────────────────────────────── */

.ft-comp[b-16vqgy140q] {
    padding: 0.8rem 1.4rem 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    background: var(--rs-surface-container-low);
}

.ft-comp-head[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.5rem 1rem;
    flex-wrap: wrap;
    font-size: 0.82rem;
    color: var(--rs-on-surface-variant);
}

.ft-comp-title[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    font-size: 0.86rem;
}

.ft-comp-title .material-icons-round[b-16vqgy140q] {
    font-size: 18px;
    color: var(--ft-color);
}

.ft-comp-count[b-16vqgy140q] {
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    font-variant-numeric: tabular-nums;
}

.ft-comp-src[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    border: 0;
    background: transparent;
    padding: 0.1rem 0.35rem;
    border-radius: 6px;
}

.ft-comp-src .material-icons-round[b-16vqgy140q] {
    font-size: 15px;
    color: var(--rs-on-surface-muted);
}

/* La procedencia de la composición es el enlace al DAT que la trajo. */
.ft-comp-src.is-link[b-16vqgy140q] {
    cursor: pointer;
    color: var(--rs-primary-text);
    text-decoration: underline dotted;
    text-underline-offset: 3px;
}

.ft-comp-src.is-link .material-icons-round[b-16vqgy140q] {
    color: var(--rs-primary-text);
}

.ft-comp-src.is-link:hover[b-16vqgy140q] {
    background: var(--rs-primary-subtle);
}

.ft-comp-types[b-16vqgy140q] {
    display: inline-flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.ft-type[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.08rem 0.5rem;
    border-radius: 999px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.ft-type b[b-16vqgy140q] {
    font-weight: 700;
    color: var(--rs-on-surface-variant);
    font-variant-numeric: tabular-nums;
}

.ft-comp-legend[b-16vqgy140q] {
    display: inline-flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-left: auto;
}

.ft-legend[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.76rem;
    font-weight: 600;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
}

.ft-legend .material-icons-round[b-16vqgy140q] { font-size: 14px; }
.ft-legend.is-stop[b-16vqgy140q] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ft-legend.is-issue[b-16vqgy140q] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

.ft-comp-empty[b-16vqgy140q] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
}

/* El tren: la locomotora y los vagones en orden de composición, como chips. */
.ft-comp-train[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.ft-comp-loco[b-16vqgy140q] {
    font-size: 22px;
    color: var(--ft-color);
    margin-right: 0.1rem;
}

/* ── Resumen ──────────────────────────────────────────────────────────────── */

.ft-stats[b-16vqgy140q] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.6rem;
    padding: 0.9rem 1.4rem;
}

.ft-stat[b-16vqgy140q] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 3px solid var(--rs-outline);
    border-radius: 10px;
    padding: 0.6rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.ft-stat-label[b-16vqgy140q] {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ft-stat-value[b-16vqgy140q] {
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.ft-stat-foot[b-16vqgy140q] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.1rem;
}

.ft-stat-foot .material-icons-round[b-16vqgy140q] { font-size: 14px; }
.ft-stat-foot.is-ok[b-16vqgy140q] { color: var(--rs-on-success-subtle); }
.ft-stat-foot.is-warn[b-16vqgy140q] { color: var(--rs-on-warning-subtle); }

/* La primera tarjeta responde a la pregunta principal: ¿cuándo circuló por última vez? */
.ft-stat-hero[b-16vqgy140q] {
    border-left-color: var(--ft-color);
    grid-column: span 2;
}

.ft-stat-hero .ft-stat-value[b-16vqgy140q] {
    font-size: 1.3rem;
}

.ft-stat-ok[b-16vqgy140q] { border-left-color: var(--rs-success); }
.ft-stat-live[b-16vqgy140q] { border-left-color: var(--rs-info); }
.ft-stat-warn[b-16vqgy140q] { border-left-color: var(--rs-warning); }
.ft-stat-danger[b-16vqgy140q] { border-left-color: var(--rs-danger); }

.ft-stat-activity[b-16vqgy140q] {
    grid-column: span 2;
}

/* Tira de actividad: doce columnas, una por semana. Las completadas van en el
   color de la lanzadera; el resto (previstas, en curso) en un tono más claro. */
.ft-activity[b-16vqgy140q] {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 34px;
    margin-top: 0.2rem;
}

.ft-activity-col[b-16vqgy140q] {
    flex: 1 1 0;
    height: 100%;
    display: flex;
    align-items: flex-end;
    border-radius: 3px;
    background: var(--rs-shade-subtle);
}

.ft-activity-col.is-current[b-16vqgy140q] {
    outline: 1px dashed var(--rs-outline-strong);
    outline-offset: 1px;
}

.ft-activity-bar[b-16vqgy140q] {
    position: relative;
    width: 100%;
    min-height: 2px;
    border-radius: 3px;
    background: var(--ft-color);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.ft-activity-bar-other[b-16vqgy140q] {
    width: 100%;
    background: color-mix(in srgb, var(--ft-color) 35%, var(--rs-surface));
}

/* ── Barra de filtros ─────────────────────────────────────────────────────── */

.ft-filters[b-16vqgy140q] {
    padding: 0.75rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.ft-toolbar[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ft-search[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0 0.7rem;
    height: 38px;
    flex: 1 1 240px;
    max-width: 380px;
}

.ft-search:focus-within[b-16vqgy140q] {
    border-color: var(--rs-primary);
    background: var(--rs-surface);
}

.ft-search > .material-icons-round[b-16vqgy140q] {
    font-size: 18px;
    color: var(--rs-on-surface-muted);
}

.ft-search input[b-16vqgy140q] {
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--rs-on-surface);
    font-size: 0.88rem;
    width: 100%;
    height: 100%;
}

.ft-search input[b-16vqgy140q]::placeholder {
    color: var(--rs-on-surface-muted);
}

.ft-search-clear[b-16vqgy140q] {
    border: 0;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: var(--rs-on-surface-muted);
    padding: 0;
}

.ft-search-clear:hover[b-16vqgy140q] {
    color: var(--rs-on-surface);
}

.ft-search-clear .material-icons-round[b-16vqgy140q] {
    font-size: 17px;
}

.ft-range[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-left: auto;
}

/* Chips de filtro. Un grupo es un segmento: el activo lleva relleno, el resto solo
   borde. El estado del filtro se ve sin abrir nada. */
.ft-chips[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.ft-chipbtn[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    height: 30px;
    padding: 0 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .12s ease, color .12s ease, border-color .12s ease;
}

.ft-chipbtn .material-icons-round[b-16vqgy140q] { font-size: 15px; }

.ft-chipbtn:hover[b-16vqgy140q] {
    border-color: var(--rs-outline-strong);
    color: var(--rs-on-surface);
}

.ft-chipbtn.is-on[b-16vqgy140q] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.ft-chipbtn.is-ok.is-on[b-16vqgy140q] { background: var(--rs-success); border-color: var(--rs-success); }
.ft-chipbtn.is-live.is-on[b-16vqgy140q] { background: var(--rs-info); border-color: var(--rs-info); }
.ft-chipbtn.is-danger.is-on[b-16vqgy140q] { background: var(--rs-danger); border-color: var(--rs-danger); }

.ft-chipbtn-n[b-16vqgy140q] {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--rs-shade);
    font-variant-numeric: tabular-nums;
    min-width: 1.3em;
    text-align: center;
}

.ft-chipbtn.is-on .ft-chipbtn-n[b-16vqgy140q] {
    background: color-mix(in srgb, var(--rs-on-primary) 22%, transparent);
}

.ft-clear-all[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 0;
    background: transparent;
    color: var(--rs-primary-text);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    border-radius: 6px;
}

.ft-clear-all:hover[b-16vqgy140q] { background: var(--rs-shade-subtle); }
.ft-clear-all .material-icons-round[b-16vqgy140q] { font-size: 16px; }

.ft-search-result[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.85rem;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    border-radius: 10px;
    font-size: 0.85rem;
}

.ft-search-result .material-icons-round[b-16vqgy140q] {
    font-size: 17px;
}

.ft-search-hits[b-16vqgy140q] {
    display: inline-flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

/* ── Cuerpo ───────────────────────────────────────────────────────────────── */

.ft-body[b-16vqgy140q] {
    padding: 1.1rem 1.4rem 1.4rem;
    background: var(--rs-surface-container-low);
}

/* ── Vacíos ───────────────────────────────────────────────────────────────── */

.ft-empty[b-16vqgy140q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    background: var(--rs-surface);
    border: 1px dashed var(--rs-outline);
    border-radius: 14px;
    text-align: center;
    color: var(--rs-on-surface-variant);
}

.ft-empty-icon[b-16vqgy140q] {
    font-size: 3rem;
    color: var(--rs-on-surface-muted);
    margin-bottom: 0.75rem;
}

.ft-empty h3[b-16vqgy140q] {
    margin: 0 0 0.5rem 0;
    color: var(--rs-on-surface);
}

.ft-empty p[b-16vqgy140q] {
    max-width: 520px;
    margin: 0;
    font-size: 0.9rem;
}

.ft-empty-parque[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.9rem;
    padding: 0.5rem 1rem;
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
    border-radius: 8px;
    font-size: 0.88rem;
}

/* ── Línea de tiempo ──────────────────────────────────────────────────────── */

.ft-feed[b-16vqgy140q] {
    position: relative;
    padding-left: 96px;
}

/* El raíl. Nace bajo la primera fecha y muere en la última: por eso lo dibuja el
   contenedor y no cada elemento, que dejaría cortes entre tarjetas. */
.ft-feed[b-16vqgy140q]::before {
    content: "";
    position: absolute;
    left: 74px;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 2px;
    background: var(--rs-outline-variant);
}

/* El mes se queda pegado arriba mientras se recorre: en un histórico largo es la
   única referencia de dónde se está. Su fondo es el del cuerpo de la tarjeta. */
.ft-month[b-16vqgy140q] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin: 1.4rem 0 0.75rem -96px;
    padding: 0.35rem 0 0.35rem 96px;
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--rs-surface-container-low);
}

.ft-feed > .ft-month:first-child[b-16vqgy140q] {
    margin-top: 0;
}

.ft-month-name[b-16vqgy140q] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.ft-month-count[b-16vqgy140q] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-muted);
}

.ft-item[b-16vqgy140q] {
    position: relative;
    margin-bottom: 0.9rem;
}

/* La chincheta sobre el raíl, a la altura de la cabecera de la tarjeta. */
.ft-item[b-16vqgy140q]::before {
    content: "";
    position: absolute;
    left: -27px;
    top: 1.35rem;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--rs-surface);
    border: 2px solid var(--rs-outline-strong);
    z-index: 1;
}

.ft-item.is-live[b-16vqgy140q]::before {
    background: var(--rs-info);
    border-color: var(--rs-info);
}

.ft-when[b-16vqgy140q] {
    position: absolute;
    left: -96px;
    top: 0;
    width: 58px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-top: 0.15rem;
}

.ft-when-day[b-16vqgy140q] {
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.ft-when-month[b-16vqgy140q] {
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--rs-on-surface-variant);
}

.ft-when-dow[b-16vqgy140q] {
    font-size: 0.68rem;
    color: var(--rs-on-surface-muted);
}

.ft-when-hour[b-16vqgy140q] {
    margin-top: 0.3rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-primary-text);
    font-variant-numeric: tabular-nums;
}

.ft-when-rel[b-16vqgy140q] {
    margin-top: 0.25rem;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

/* ── Tarjeta de circulación ───────────────────────────────────────────────── */

.ft-card[b-16vqgy140q] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-strong);
    border-radius: 12px;
    padding: 0.9rem 1.1rem;
    box-shadow: var(--rs-shadow-sm);
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    transition: box-shadow .15s ease;
}

.ft-card:hover[b-16vqgy140q] {
    box-shadow: var(--rs-shadow-md);
}

.ft-card-encurso[b-16vqgy140q] {
    border-left-color: var(--rs-info);
    box-shadow: var(--rs-shadow-md);
}

.ft-card-completada[b-16vqgy140q] {
    border-left-color: var(--rs-success);
}

.ft-card-cancelada[b-16vqgy140q] {
    border-left-color: var(--rs-danger);
    opacity: .8;
}

.ft-card-top[b-16vqgy140q] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ft-route[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.ft-place[b-16vqgy140q] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.ft-route-arrow[b-16vqgy140q] {
    color: var(--rs-on-surface-muted);
    font-size: 20px;
}

.ft-tags[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.ft-tag[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.73rem;
    font-weight: 600;
    padding: 0.18rem 0.5rem;
    border-radius: 6px;
    white-space: nowrap;
    font-family: inherit;
}

.ft-tag .material-icons-round[b-16vqgy140q] {
    font-size: 14px;
}

.ft-tag-dat[b-16vqgy140q] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    border: 1px solid var(--rs-outline-variant);
}

/* La etiqueta DAT es el enlace al PDF: se ve como enlace (color primario y flechita) y
   no como un botón más al pie de la tarjeta. */
.ft-tag-dat.is-link[b-16vqgy140q] {
    cursor: pointer;
    color: var(--rs-primary-text);
    border-color: color-mix(in srgb, var(--rs-primary) 45%, var(--rs-outline-variant));
    background: var(--rs-primary-subtle);
    transition: background .12s ease, border-color .12s ease;
}

.ft-tag-dat.is-link:hover[b-16vqgy140q] {
    border-color: var(--rs-primary);
    background: color-mix(in srgb, var(--rs-primary) 18%, var(--rs-surface));
}

.ft-tag-open[b-16vqgy140q] {
    font-size: 12px !important;
    opacity: .75;
}

.ft-tag-gps[b-16vqgy140q] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.ft-tag-prevista[b-16vqgy140q] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
}

.ft-tag-encurso[b-16vqgy140q] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.ft-tag-completada[b-16vqgy140q] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.ft-tag-cancelada[b-16vqgy140q] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

/* Progreso de una circulación en curso: el tren avanza sobre la vía. */
.ft-progress[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.ft-progress-track[b-16vqgy140q] {
    position: relative;
    flex: 1 1 auto;
    height: 6px;
    border-radius: 3px;
    background: var(--rs-surface-container-high);
    overflow: visible;
}

.ft-progress-fill[b-16vqgy140q] {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    border-radius: 3px;
    background: var(--rs-info);
    transition: width .4s ease;
}

.ft-progress-train[b-16vqgy140q] {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -55%);
    font-size: 18px;
    color: var(--rs-info);
    background: var(--rs-surface);
    border-radius: 50%;
    transition: left .4s ease;
}

.ft-progress-label[b-16vqgy140q] {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--rs-on-info-subtle);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ft-facts[b-16vqgy140q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.6rem;
    padding: 0.55rem 0;
    border-top: 1px solid var(--rs-outline-variant);
    border-bottom: 1px solid var(--rs-outline-variant);
}

.ft-fact[b-16vqgy140q] {
    display: flex;
    flex-direction: column;
}

.ft-fact-label[b-16vqgy140q] {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--rs-on-surface-muted);
    font-weight: 700;
}

.ft-fact-value[b-16vqgy140q] {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.ft-fact-gps .ft-fact-value[b-16vqgy140q] {
    color: var(--rs-primary-text);
}

/* ── Destinos candidatos (rotaciones provisionales por GPS) ───────────────── */

.ft-candidates[b-16vqgy140q] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: 0.55rem 0.8rem;
}

.ft-candidates-title[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.73rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    margin-bottom: 0.45rem;
}

.ft-candidates-title .material-icons-round[b-16vqgy140q] {
    font-size: 16px;
    color: var(--rs-primary-text);
}

.ft-candidates-list[b-16vqgy140q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.ft-cand[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.18rem 0.5rem;
    border-radius: 6px;
    font-size: 0.76rem;
    border: 1px solid transparent;
}

.ft-cand .material-icons-round[b-16vqgy140q] {
    font-size: 14px;
}

.ft-cand-name[b-16vqgy140q] {
    font-weight: 600;
}

.ft-cand-km[b-16vqgy140q] {
    font-size: 0.7rem;
    opacity: .85;
}

.ft-cand-activo[b-16vqgy140q] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary);
}

.ft-cand-confirmado[b-16vqgy140q] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
    border-color: var(--rs-success);
}

.ft-cand-descartado[b-16vqgy140q] {
    background: var(--rs-surface);
    color: var(--rs-on-surface-muted);
    border-color: var(--rs-outline-variant);
    text-decoration: line-through;
}

/* ── Vagones ──────────────────────────────────────────────────────────────── */

.ft-wagons[b-16vqgy140q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

/* Chip de vagón: [tipo] [icono de estado] matrícula [estado]. El tipo va en su propia
   pieza a la izquierda, con fondo propio, para que se lea como una etiqueta y no como
   parte de la matrícula. */
.ft-chip[b-16vqgy140q] {
    display: inline-flex;
    align-items: stretch;
    gap: 0;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 6px;
    padding: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    cursor: pointer;
    overflow: hidden;
    transition: border-color .12s ease, background .12s ease;
}

.ft-chip:hover[b-16vqgy140q] {
    border-color: var(--rs-primary);
    background: var(--rs-surface-container-high);
}

.ft-chip > *[b-16vqgy140q] {
    display: inline-flex;
    align-items: center;
}

.ft-chip-type[b-16vqgy140q] {
    padding: 0.16rem 0.4rem;
    background: var(--rs-shade);
    color: var(--rs-on-surface-variant);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: .02em;
    border-right: 1px solid var(--rs-outline-variant);
}

.ft-chip-plate[b-16vqgy140q] {
    padding: 0.16rem 0.45rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.ft-chip-icon[b-16vqgy140q] {
    font-size: 13px;
    padding-left: 0.4rem;
    margin-right: -0.2rem;
}

/* El estado también se dice con texto: nunca solo con el color. */
.ft-chip-state[b-16vqgy140q] {
    padding: 0.16rem 0.45rem 0.16rem 0;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

/* Inmovilizado: el vagón no puede circular. Rojo, y manda sobre la incidencia. */
.ft-chip-stop[b-16vqgy140q] {
    background: var(--rs-danger-subtle);
    border-color: var(--rs-danger);
    color: var(--rs-on-danger-subtle);
}

.ft-chip-stop .ft-chip-type[b-16vqgy140q] {
    background: color-mix(in srgb, var(--rs-danger) 22%, var(--rs-surface));
    color: var(--rs-on-danger-subtle);
    border-right-color: color-mix(in srgb, var(--rs-danger) 40%, transparent);
}

/* Incidencia abierta: circula, pero arrastra algo. Ámbar. */
.ft-chip-issue[b-16vqgy140q] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
    color: var(--rs-on-warning-subtle);
}

.ft-chip-issue .ft-chip-type[b-16vqgy140q] {
    background: color-mix(in srgb, var(--rs-warning) 25%, var(--rs-surface));
    color: var(--rs-on-warning-subtle);
    border-right-color: color-mix(in srgb, var(--rs-warning) 45%, transparent);
}

/* Las dos cosas a la vez: el borde va a rayas para que no se confunda con un inmovilizado a secas. */
.ft-chip-both[b-16vqgy140q] {
    border-style: double;
    border-width: 3px;
}

/* En la tira de composición el chip va un punto más pequeño: son muchos y se leen en fila. */
.ft-chip-sm[b-16vqgy140q] {
    font-size: 0.7rem;
}

.ft-chip-sm .ft-chip-type[b-16vqgy140q] { font-size: 0.62rem; padding: 0.1rem 0.35rem; }
.ft-chip-sm .ft-chip-plate[b-16vqgy140q] { padding: 0.1rem 0.4rem; }

/* Coincidencia de la búsqueda. Se dibuja con un anillo para que se distinga del
   color de estado, que dice otra cosa. */
.ft-chip-match[b-16vqgy140q] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 1px;
}

.ft-chip-more[b-16vqgy140q] {
    font-family: inherit;
    color: var(--rs-primary-text);
    background: transparent;
    border-style: dashed;
    padding: 0.16rem 0.45rem;
}

/* ── Acciones ─────────────────────────────────────────────────────────────── */

.ft-actions[b-16vqgy140q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* ── Pantallas estrechas ──────────────────────────────────────────────────── */

@media (max-width: 720px) {
    .ft-page[b-16vqgy140q] {
        padding: 0.75rem 0.6rem 1.5rem;
    }

    .ft-hero[b-16vqgy140q],
    .ft-comp[b-16vqgy140q],
    .ft-stats[b-16vqgy140q],
    .ft-filters[b-16vqgy140q],
    .ft-body[b-16vqgy140q] {
        padding-left: 0.9rem;
        padding-right: 0.9rem;
    }

    .ft-stat-hero[b-16vqgy140q],
    .ft-stat-activity[b-16vqgy140q] {
        grid-column: 1 / -1;
    }

    .ft-range[b-16vqgy140q] {
        margin-left: 0;
    }

    .ft-comp-legend[b-16vqgy140q] {
        margin-left: 0;
    }

    /* Sin sitio para la columna de fechas: la fecha se convierte en una línea
       horizontal sobre la tarjeta y el raíl desaparece. */
    .ft-feed[b-16vqgy140q] {
        padding-left: 0;
    }

    .ft-feed[b-16vqgy140q]::before,
    .ft-item[b-16vqgy140q]::before {
        display: none;
    }

    .ft-month[b-16vqgy140q] {
        margin-left: 0;
        padding-left: 0;
    }

    .ft-when[b-16vqgy140q] {
        position: static;
        width: auto;
        flex-direction: row;
        align-items: baseline;
        gap: 0.4rem;
        padding: 0 0 0.35rem 0.15rem;
    }

    .ft-when-day[b-16vqgy140q] {
        font-size: 1rem;
    }

    .ft-when-hour[b-16vqgy140q],
    .ft-when-rel[b-16vqgy140q] {
        margin-top: 0;
    }
}

/* ── Ajustes de composición ───────────────────────────────────────────────── */

/* Un ajuste no es una circulación: violeta, el acento que no usa ningún estado. */
.ft-item.is-ajuste[b-16vqgy140q]::before {
    background: var(--rs-violet);
    border-color: var(--rs-violet);
}

.ft-card-ajuste[b-16vqgy140q] {
    border-left-color: var(--rs-violet);
    background: color-mix(in srgb, var(--rs-violet) 5%, var(--rs-surface));
}

.ft-ajuste-icon[b-16vqgy140q] {
    font-size: 22px;
    color: var(--rs-violet);
}

.ft-tag-ajuste[b-16vqgy140q] {
    background: var(--rs-violet-subtle);
    color: var(--rs-on-violet-subtle);
}

.ft-tag-user[b-16vqgy140q] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    border: 1px solid var(--rs-outline-variant);
}

/* Entra / sale: el signo va en la pestaña del chip, en el sitio del tipo, para que el
   color no sea lo único que lo dice. */
.ft-chip-added[b-16vqgy140q] {
    border-color: var(--rs-success);
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.ft-chip-added .ft-chip-type[b-16vqgy140q] {
    background: color-mix(in srgb, var(--rs-success) 22%, var(--rs-surface));
    color: var(--rs-on-success-subtle);
    border-right-color: color-mix(in srgb, var(--rs-success) 40%, transparent);
}

.ft-chip-removed[b-16vqgy140q] {
    border-color: var(--rs-danger);
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.ft-chip-removed .ft-chip-type[b-16vqgy140q] {
    background: color-mix(in srgb, var(--rs-danger) 22%, var(--rs-surface));
    color: var(--rs-on-danger-subtle);
    border-right-color: color-mix(in srgb, var(--rs-danger) 40%, transparent);
}

.ft-chip-removed .ft-chip-plate[b-16vqgy140q] {
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.ft-ajuste-note[b-16vqgy140q] {
    display: flex;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
    white-space: pre-line;
}

.ft-ajuste-note .material-icons-round[b-16vqgy140q] {
    font-size: 16px;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.ft-ajuste-full summary[b-16vqgy140q] {
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rs-primary-text);
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.ft-ajuste-full summary[b-16vqgy140q]::before {
    content: "chevron_right";
    font-family: "Material Icons Round";
    font-size: 16px;
    transition: transform .12s ease;
}

.ft-ajuste-full[open] summary[b-16vqgy140q]::before {
    transform: rotate(90deg);
}

.ft-ajuste-full summary[b-16vqgy140q]::-webkit-details-marker {
    display: none;
}

.ft-ajuste-full > .ft-wagons[b-16vqgy140q] {
    margin-top: 0.5rem;
}

.ft-chipbtn.is-ajuste.is-on[b-16vqgy140q] {
    background: var(--rs-violet);
    border-color: var(--rs-violet);
}

.ft-comp-src.is-ajuste .material-icons-round[b-16vqgy140q] {
    color: var(--rs-violet);
}
/* /Pages/Lanzaderas/FixedShuttleWagonAssignmentDialog.razor.rz.scp.css */
/* Parque base de una lanzadera fija. Solo tokens de railsider-theme.css; el color de
   la lanzadera (--fa-color) se usa en piezas sin texto encima. */

.fa-dialog[b-zz4n5ubvxn] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.25rem 0 0;
}

.fa-loading[b-zz4n5ubvxn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2.5rem 0;
    color: var(--rs-on-surface-variant);
}

.fa-intro[b-zz4n5ubvxn] {
    display: flex;
    gap: 0.6rem;
    margin: 0;
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-size: 0.84rem;
    line-height: 1.45;
}

.fa-intro .material-icons-round[b-zz4n5ubvxn] {
    font-size: 20px;
    flex-shrink: 0;
}

.fa-intro em[b-zz4n5ubvxn] {
    display: block;
    font-style: normal;
    font-size: 0.76rem;
    opacity: .85;
    margin-top: 0.2rem;
}

.fa-section[b-zz4n5ubvxn] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.fa-section-title[b-zz4n5ubvxn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.fa-step[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: 0.72rem;
    font-weight: 700;
}

.fa-add[b-zz4n5ubvxn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.fa-train-head[b-zz4n5ubvxn] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.fa-train-count[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
}

.fa-train-count strong[b-zz4n5ubvxn] {
    color: var(--rs-on-surface);
}

.fa-train-count .material-icons-round[b-zz4n5ubvxn] {
    font-size: 18px;
    color: var(--fa-color);
}

.fa-empty[b-zz4n5ubvxn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 1.75rem 1rem;
    text-align: center;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline);
    border-radius: 10px;
    color: var(--rs-on-surface-variant);
}

.fa-empty .material-icons-round[b-zz4n5ubvxn] {
    font-size: 2rem;
    color: var(--rs-on-surface-muted);
}

.fa-empty p[b-zz4n5ubvxn] {
    margin: 0;
    font-size: 0.85rem;
    max-width: 420px;
}

/* El tren: una lista ordenada horizontal que hace wrap. La barra inferior en el color
   de la lanzadera une los vagones como el bastidor. */
.fa-train[b-zz4n5ubvxn] {
    list-style: none;
    margin: 0;
    padding: 0.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    max-height: 280px;
    overflow-y: auto;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
}

.fa-loco[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    border-radius: 8px 3px 3px 8px;
    background: var(--fa-color);
    color: var(--rs-on-primary);
}

.fa-loco .material-icons-round[b-zz4n5ubvxn] {
    font-size: 20px;
}

.fa-wagon[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.35rem 0.3rem 0.5rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-bottom: 3px solid var(--fa-color);
    border-radius: 6px;
    font-size: 0.82rem;
    box-shadow: var(--rs-shadow-sm);
}

.fa-wagon-pos[b-zz4n5ubvxn] {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container);
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
    min-width: 1.6em;
    text-align: center;
}

.fa-wagon-plate[b-zz4n5ubvxn] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.fa-wagon-serie[b-zz4n5ubvxn] {
    font-size: 0.72rem;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    padding: 0.1rem 0.3rem;
    border-radius: 4px;
}

/* Las herramientas aparecen al pasar por encima; a teclado siempre se ven al enfocar. */
.fa-wagon-tools[b-zz4n5ubvxn] {
    display: inline-flex;
    gap: 0.1rem;
    margin-left: 0.15rem;
    opacity: .45;
    transition: opacity .12s ease;
}

.fa-wagon:hover .fa-wagon-tools[b-zz4n5ubvxn],
.fa-wagon:focus-within .fa-wagon-tools[b-zz4n5ubvxn] {
    opacity: 1;
}

.fa-tool[b-zz4n5ubvxn] {
    background: transparent;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    padding: 0.1rem;
    border-radius: 4px;
    color: var(--rs-on-surface-muted);
    transition: color .12s ease, background .12s ease;
}

.fa-tool:hover:not(:disabled)[b-zz4n5ubvxn] {
    color: var(--rs-on-surface);
    background: var(--rs-shade-subtle);
}

.fa-tool:focus-visible[b-zz4n5ubvxn] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 1px;
}

.fa-tool:disabled[b-zz4n5ubvxn] {
    opacity: .3;
    cursor: default;
}

.fa-tool-danger:hover:not(:disabled)[b-zz4n5ubvxn] {
    color: var(--rs-danger);
    background: var(--rs-danger-subtle);
}

.fa-tool .material-icons-round[b-zz4n5ubvxn] {
    font-size: 1rem;
}

.fa-footer[b-zz4n5ubvxn] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.fa-footer-hint[b-zz4n5ubvxn] {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
}

.fa-footer-hint .material-icons-round[b-zz4n5ubvxn] {
    font-size: 16px;
}

/* ── Modo ajuste ──────────────────────────────────────────────────────────── */

.fa-train-tools[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

/* El tren dice qué tocar. El estado también va en icono y en el title: nunca solo color. */
.fa-wagon-icon[b-zz4n5ubvxn] {
    font-size: 15px;
}

.fa-wagon-stop[b-zz4n5ubvxn] {
    background: var(--rs-danger-subtle);
    border-color: var(--rs-danger);
    border-bottom-color: var(--rs-danger);
}

.fa-wagon-stop .fa-wagon-plate[b-zz4n5ubvxn],
.fa-wagon-stop .fa-wagon-icon[b-zz4n5ubvxn] {
    color: var(--rs-on-danger-subtle);
}

.fa-wagon-issue[b-zz4n5ubvxn] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
    border-bottom-color: var(--rs-warning);
}

.fa-wagon-issue .fa-wagon-plate[b-zz4n5ubvxn],
.fa-wagon-issue .fa-wagon-icon[b-zz4n5ubvxn] {
    color: var(--rs-on-warning-subtle);
}

/* Entra en este ajuste: borde discontinuo y verde, como una pieza recién enganchada. */
.fa-wagon-new[b-zz4n5ubvxn] {
    border-style: dashed;
    border-color: var(--rs-success);
    border-bottom-style: solid;
    border-bottom-color: var(--rs-success);
    background: var(--rs-success-subtle);
}

.fa-wagon-new .fa-wagon-plate[b-zz4n5ubvxn],
.fa-wagon-new .fa-wagon-icon[b-zz4n5ubvxn] {
    color: var(--rs-on-success-subtle);
}

.fa-hint[b-zz4n5ubvxn] {
    display: flex;
    gap: 0.5rem;
    margin: 0;
    padding: 0.55rem 0.8rem;
    border-radius: 8px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.82rem;
    line-height: 1.4;
}

.fa-hint .material-icons-round[b-zz4n5ubvxn] {
    font-size: 18px;
    flex-shrink: 0;
}

/* Qué cambia: tres píldoras con signo, o "nada todavía". */
.fa-diff[b-zz4n5ubvxn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    min-height: 1.9rem;
}

.fa-diff-none[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    color: var(--rs-on-surface-variant);
}

.fa-diff-none .material-icons-round[b-zz4n5ubvxn] {
    font-size: 16px;
}

.fa-diff-pill[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.6rem 0.2rem 0.4rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.fa-diff-pill .material-icons-round[b-zz4n5ubvxn] {
    font-size: 16px;
}

.fa-diff-pill.is-add[b-zz4n5ubvxn] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.fa-diff-pill.is-del[b-zz4n5ubvxn] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.fa-diff-pill.is-move[b-zz4n5ubvxn] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

/* Motivo: chips con radio, uno solo encendido. */
.fa-motivos[b-zz4n5ubvxn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.fa-motivo[b-zz4n5ubvxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.32rem 0.7rem 0.32rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

.fa-motivo .material-icons-round[b-zz4n5ubvxn] {
    font-size: 16px;
}

.fa-motivo:hover:not(:disabled)[b-zz4n5ubvxn] {
    border-color: var(--rs-primary);
    color: var(--rs-on-surface);
}

.fa-motivo:focus-visible[b-zz4n5ubvxn] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 1px;
}

.fa-motivo.is-on[b-zz4n5ubvxn] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.fa-motivo:disabled[b-zz4n5ubvxn] {
    opacity: .6;
    cursor: default;
}
/* /Pages/Lanzaderas/LanzaderaCreateDialog.razor.rz.scp.css */
.create-dialog[b-kczwx241os] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ===== Preview en vivo ===== */
.create-preview[b-kczwx241os] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.1rem 1rem 1rem;
    border-radius: 14px;
    background: linear-gradient(180deg, #04070f 0%, #0b1626 55%, #1b3350 100%);
    border: 1px solid #1e293b;
    position: relative;
    overflow: hidden;
    transition: opacity 0.2s;
}

.create-preview.preview-empty[b-kczwx241os] { opacity: 0.85; }

/* vía bajo el tren */
.preview-train[b-kczwx241os] {
    display: flex;
    align-items: center;
    gap: 5px;
    position: relative;
    padding-bottom: 8px;
}

.preview-train[b-kczwx241os]::after {
    content: '';
    position: absolute;
    left: -30px;
    right: -30px;
    bottom: 0;
    height: 3px;
    background: #3d5273;
    border-radius: 2px;
}

.preview-loco[b-kczwx241os] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 28px;
    border-radius: 7px 4px 4px 4px;
    background: linear-gradient(160deg, #8b3d7c, #631656);
    color: var(--rs-on-primary);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.5);
}

.preview-loco .material-icons-round[b-kczwx241os] { font-size: 1.1rem; }

.preview-wagon[b-kczwx241os] {
    width: 30px;
    height: 22px;
    border-radius: 4px;
    background: linear-gradient(180deg, #2a6fd4, #16407e);
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.5);
}

.preview-name[b-kczwx241os] {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--rs-on-primary);
    text-align: center;
}

.preview-route[b-kczwx241os] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    justify-content: center;
}

.preview-route-placeholder[b-kczwx241os] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    font-style: italic;
}

.route-dot[b-kczwx241os] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.route-origin[b-kczwx241os] { background: var(--rs-success); box-shadow: 0 0 8px rgba(74, 222, 128, 0.7); }
.route-end[b-kczwx241os] { background: var(--rs-info); box-shadow: 0 0 8px rgba(96, 165, 250, 0.7); }

.preview-route-name[b-kczwx241os] {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--rs-on-surface-inverse);
}

.preview-route-line[b-kczwx241os] {
    width: 26px;
    height: 2px;
    background: repeating-linear-gradient(90deg,
        rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0.5) 4px,
        transparent 4px, transparent 8px);
}

.preview-km[b-kczwx241os] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--rs-info);
    background: rgba(96, 165, 250, 0.12);
    border: 1px solid rgba(96, 165, 250, 0.3);
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.preview-company[b-kczwx241os] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.74rem;
    color: var(--rs-on-surface-muted);
}

.preview-company .material-icons-round[b-kczwx241os] { font-size: 0.9rem; }

/* ===== Form ===== */
.create-hint[b-kczwx241os] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
}

.create-hint .material-icons-round[b-kczwx241os] {
    font-size: 1rem;
    color: var(--rs-primary-text);
}
/* /Pages/Lanzaderas/LanzaderaEditor.razor.rz.scp.css */
.lanzadera-editor-card[b-bfi2tex82s] {
    max-width: 1600px;
}

.editor-loading[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 3rem;
    color: var(--rs-on-surface-variant);
}

/* ===== Hero ===== */
.editor-hero[b-bfi2tex82s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-radius: 14px;
    background: linear-gradient(120deg, #2b0d26 0%, #631656 55%, #8b3d7c 100%);
    color: var(--rs-on-primary);
    box-shadow: 0 8px 24px rgba(99, 22, 86, 0.3);
}

.hero-left[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}

.hero-back[b-bfi2tex82s] {
    flex: 0 0 auto;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.1);
    color: var(--rs-on-primary);
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s;
}

.hero-back:hover[b-bfi2tex82s] { background: rgba(255, 255, 255, 0.22); }
.hero-back .material-icons-round[b-bfi2tex82s] { font-size: 1.2rem; }

.hero-titles[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.hero-name[b-bfi2tex82s] {
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.15;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.hero-name-text[b-bfi2tex82s] {
    cursor: pointer;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.35);
    transition: border-color 0.15s;
}

    .hero-name-text:hover[b-bfi2tex82s] {
        border-bottom-color: rgba(255, 255, 255, 0.7);
    }

.hero-name-edit-btn[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: 4px;
    color: rgba(255, 255, 255, 0.75);
    cursor: pointer;
    padding: 2px;
    line-height: 1;
    transition: background 0.12s, color 0.12s;
}

    .hero-name-edit-btn:hover[b-bfi2tex82s] {
        background: rgba(255, 255, 255, 0.28);
        color: var(--rs-on-primary);
    }

    .hero-name-edit-btn .material-icons-round[b-bfi2tex82s] {
        font-size: 0.95rem;
    }

.hero-name-input[b-bfi2tex82s] {
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--rs-on-primary);
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    outline: none;
    min-width: 250px;
    max-width: 500px;
    width: 100%;
    font-family: inherit;
}

    .hero-name-input:focus[b-bfi2tex82s] {
        border-color: rgba(255, 255, 255, 0.7);
        background: rgba(255, 255, 255, 0.2);
    }

.hero-route[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--rs-on-primary);
    flex-wrap: wrap;
}

.route-dot[b-bfi2tex82s] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.route-origin[b-bfi2tex82s] { background: var(--rs-success); box-shadow: 0 0 8px rgba(74, 222, 128, 0.8); }
.route-end[b-bfi2tex82s] { background: var(--rs-info); box-shadow: 0 0 8px rgba(96, 165, 250, 0.8); }

.route-line[b-bfi2tex82s] {
    width: 36px;
    height: 2px;
    background: repeating-linear-gradient(90deg,
        rgba(255, 255, 255, 0.7) 0, rgba(255, 255, 255, 0.7) 5px,
        transparent 5px, transparent 9px);
    flex: 0 0 auto;
}

.hero-meta[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.76rem;
    color: rgba(255, 255, 255, 0.75);
    flex-wrap: wrap;
}

.hero-meta .material-icons-round[b-bfi2tex82s] { font-size: 0.95rem; }
.hero-meta-sep[b-bfi2tex82s] { margin: 0 0.2rem; }

.week-nav-btn[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: 4px;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    padding: 1px;
    line-height: 1;
    transition: background 0.12s, color 0.12s;
}

    .week-nav-btn:hover[b-bfi2tex82s] {
        background: rgba(255, 255, 255, 0.3);
        color: var(--rs-on-primary);
    }

    .week-nav-btn .material-icons-round[b-bfi2tex82s] {
        font-size: 1.1rem;
    }

.hero-right[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.unsaved-badge[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--rs-warning-subtle);
    background: rgba(217, 119, 6, 0.25);
    border: 1px solid rgba(253, 230, 138, 0.4);
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    animation: pulse-badge-b-bfi2tex82s 2s ease-in-out infinite;
}

.unsaved-badge .material-icons-round[b-bfi2tex82s] { font-size: 0.9rem; }

@keyframes pulse-badge-b-bfi2tex82s {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.65; }
}

/* estado segmentado */
.estado-toggle[b-bfi2tex82s] {
    display: inline-flex;
    background: var(--rs-shade-strong);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    padding: 3px;
    gap: 3px;
}

.estado-btn[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.65);
    font-weight: 700;
    font-size: 0.78rem;
    padding: 0.35rem 0.75rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.estado-btn .material-icons-round[b-bfi2tex82s] { font-size: 1rem; }
.estado-btn:hover:not(:disabled)[b-bfi2tex82s] { color: var(--rs-on-primary); }
.estado-btn:disabled[b-bfi2tex82s] { cursor: default; opacity: 0.6; }

.estado-btn.active.draft[b-bfi2tex82s] {
    background: var(--rs-surface);
    color: var(--rs-primary-text);
}

.estado-btn.active.confirmed[b-bfi2tex82s] {
    background: var(--rs-success);
    color: var(--rs-on-primary);
    box-shadow: 0 2px 8px rgba(22, 163, 74, 0.45);
}

/* ===== Layout ===== */
.editor-layout[b-bfi2tex82s] {
    display: grid;
    grid-template-columns: 320px 1fr 200px;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 1200px) {
    .editor-layout[b-bfi2tex82s] {
        grid-template-columns: 320px 1fr;
    }

    .plate-list-panel[b-bfi2tex82s] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 960px) {
    .editor-layout[b-bfi2tex82s] {
        grid-template-columns: 1fr;
    }
}

/* ===== Pool ===== */
.pool-panel[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    max-height: 640px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    padding: 0.9rem;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

.pool-header[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.pool-title[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--rs-on-surface);
}

.pool-title .material-icons-round[b-bfi2tex82s] {
    font-size: 1.15rem;
    color: var(--rs-primary-text);
}

.pool-count[b-bfi2tex82s] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-weight: 800;
    font-size: 0.78rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.pool-actions[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.pool-list-meta[b-bfi2tex82s] {
    font-size: 0.75rem;
    color: var(--rs-primary-text);
    font-weight: 600;
}

.pool-checkbox-list[b-bfi2tex82s] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-right: 2px;
}

.pool-checkbox-list[b-bfi2tex82s]::-webkit-scrollbar { width: 7px; }
.pool-checkbox-list[b-bfi2tex82s]::-webkit-scrollbar-thumb {
    background: var(--rs-surface-container-high);
    border-radius: 4px;
}

.pool-checkbox-item[b-bfi2tex82s] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, transform 0.12s;
}

.pool-checkbox-item:hover[b-bfi2tex82s] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary-light);
    transform: translateX(2px);
}

.pool-checkbox-item.checked[b-bfi2tex82s] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
}

.pool-checkbox-body[b-bfi2tex82s] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pool-checkbox-title[b-bfi2tex82s] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
}

.pool-checkbox-title strong[b-bfi2tex82s] {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.85rem;
}

.pool-tipo[b-bfi2tex82s] {
    font-size: 0.76rem;
    color: var(--rs-on-surface-variant);
}

/* ===== Grupos colapsables del pool ===== */
.pool-group[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.pool-group-header[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.55rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 9px;
    cursor: pointer;
    user-select: none;
    transition: background 0.12s, border-color 0.12s;
}

.pool-group-header:hover[b-bfi2tex82s] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary-light);
}

.pool-group-chevron[b-bfi2tex82s] {
    font-size: 1.15rem;
    color: var(--rs-on-surface-variant);
    transition: transform 0.15s;
    flex-shrink: 0;
}

.pool-group-header.open .pool-group-chevron[b-bfi2tex82s] {
    transform: rotate(90deg);
    color: var(--rs-primary-text);
}

.pool-group-check[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
}

.pool-group-name[b-bfi2tex82s] {
    flex: 1;
    min-width: 0;
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pool-group-count[b-bfi2tex82s] {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--rs-on-surface);
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline);
    border-radius: 999px;
    min-width: 22px;
    height: 20px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pool-group-items[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding-left: 0.4rem;
}

/* ===== Drag desde el pool ===== */
.pool-drag-grip[b-bfi2tex82s] {
    font-size: 1.05rem;
    color: var(--rs-on-surface-muted);
    cursor: grab;
    flex-shrink: 0;
    margin-top: 1px;
}

.pool-checkbox-item[draggable="true"][b-bfi2tex82s] { cursor: grab; }
.pool-checkbox-item.pool-dragging[b-bfi2tex82s] {
    opacity: 0.5;
    border-style: dashed;
    border-color: var(--rs-primary);
}

/* ===== Zona de drop (composición) ===== */
.composition-drop-zone[b-bfi2tex82s] {
    position: relative;
    flex: 1;
    min-width: 0;
    border-radius: 14px;
    transition: box-shadow 0.15s, outline 0.15s;
}

.composition-drop-zone.drop-active[b-bfi2tex82s] {
    outline: 2px dashed var(--rs-primary);
    outline-offset: 4px;
    box-shadow: 0 0 0 6px rgba(99, 22, 86, 0.08);
}

.composition-drop-zone.drop-active[b-bfi2tex82s]::after {
    content: 'Suelta para añadir el vagón al tren';
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 999px;
    pointer-events: none;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.35);
}

.pool-checkbox-badges[b-bfi2tex82s] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.pool-empty-hint[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
    padding: 1.5rem 0.5rem;
    text-align: center;
}

.pool-empty-hint .material-icons-round[b-bfi2tex82s] {
    font-size: 1.8rem;
    color: var(--rs-success);
    opacity: 0.6;
}

/* ===== Color dot en hero ===== */
.hero-color-dot[b-bfi2tex82s] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.7);
    vertical-align: middle;
    margin-right: 0.3rem;
}

/* Selector de color como círculo pequeño, integrado en la cabecera oscura */
.hero-color-input[b-bfi2tex82s] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    vertical-align: middle;
    margin-right: 0.45rem;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.hero-color-input:hover[b-bfi2tex82s] {
    transform: scale(1.1);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.hero-color-input[b-bfi2tex82s]::-webkit-color-swatch-wrapper {
    padding: 0;
}

.hero-color-input[b-bfi2tex82s]::-webkit-color-swatch {
    border: none;
    border-radius: 50%;
}

.hero-color-input[b-bfi2tex82s]::-moz-color-swatch {
    border: none;
    border-radius: 50%;
}

/* ===== Selector de día (tabs) ===== */
.day-tabs-toolbar[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.day-tabs[b-bfi2tex82s] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    flex: 0 1 auto;
    min-width: 0;
}

/* Asegura que el widget del tiempo no se estire en la fila */
.day-tabs-toolbar[b-bfi2tex82s]  .wx-widget,
.day-tabs-toolbar[b-bfi2tex82s]  .wx-toggle {
    width: fit-content;
    max-width: 100%;
}

.day-tab[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    padding: 0.55rem 1rem;
    border: 2px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-weight: 700;
    font-size: 0.82rem;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s, transform 0.12s;
    min-width: 58px;
}

.day-tab:hover[b-bfi2tex82s] {
    background: var(--rs-surface-container-low);
    border-color: var(--rs-outline);
    transform: translateY(-1px);
}

.day-tab-active[b-bfi2tex82s] {
    background: var(--rs-primary-subtle);
    border-width: 2px;
    box-shadow: 0 2px 8px rgba(99, 22, 86, 0.12);
}

.day-tab-label[b-bfi2tex82s] {
    line-height: 1;
}

.day-tab-dot[b-bfi2tex82s] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    transition: transform 0.15s;
}

.day-tab-active .day-tab-dot[b-bfi2tex82s] {
    transform: scale(1.3);
}

/* ===== Barra de ruta del día ===== */
.day-route-bar[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.8rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
}

.rot-operational-fields[b-bfi2tex82s] {
    display: flex;
    align-items: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.8rem;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    margin-top: 0.4rem;
}

.rot-checkbox-field[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding-bottom: 0.5rem;
}

.rot-checkbox-label[b-bfi2tex82s] {
    font-size: 0.82rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.day-route-readonly[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.day-route-empty[b-bfi2tex82s] {
    font-size: 0.85rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* ===== Estado vacío sin rotación ===== */
.no-rotacion-hint[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3rem 1.5rem;
    text-align: center;
    color: var(--rs-on-surface-variant);
    font-size: 0.9rem;
}

.no-rotacion-hint .material-icons-round[b-bfi2tex82s] {
    font-size: 3rem;
    color: var(--rs-on-surface-disabled);
}

.no-rotacion-hint strong[b-bfi2tex82s] {
    color: var(--rs-on-surface);
}

/* ===== Autoguardado (cabecera) ===== */
.autosave-controls[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.25rem 0.6rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
}

.autosave-switch[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    cursor: pointer;
    white-space: nowrap;
}

.save-status[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    font-weight: 500;
    white-space: nowrap;
}

.save-status .material-icons-round[b-bfi2tex82s] {
    font-size: 1rem;
}

.save-status.is-saved[b-bfi2tex82s] {
    color: var(--rs-success);
}

.save-status.is-dirty[b-bfi2tex82s] {
    color: var(--rs-warning);
}

.save-status.is-saving[b-bfi2tex82s] {
    color: var(--rs-info);
}

.save-status .material-icons-round.spin[b-bfi2tex82s] {
    animation: lz-save-spin-b-bfi2tex82s 0.9s linear infinite;
}

@keyframes lz-save-spin-b-bfi2tex82s {
    to { transform: rotate(360deg); }
}

/* ===== Pestañas de ruta (Ruta 1 / Ruta 2) ===== */
.route-tabs[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
}

.route-tab[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.85rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem 0.5rem 0 0;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.route-tab:hover[b-bfi2tex82s] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
}

.route-tab .material-icons-round[b-bfi2tex82s] {
    font-size: 1.05rem;
}

.route-tab-active[b-bfi2tex82s] {
    background: var(--rs-surface);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary);
    box-shadow: 0 -2px 0 var(--rs-primary, #631656) inset;
}

.route-add[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border: 1px dashed var(--rs-outline);
    border-radius: 0.5rem;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.route-add:hover[b-bfi2tex82s] {
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
}

.route-remove[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
}

.route-remove:hover[b-bfi2tex82s] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.route-remove .material-icons-round[b-bfi2tex82s] {
    font-size: 1rem;
}

/* ===== Panel de matrículas (copiable) ===== */
.plate-list-panel[b-bfi2tex82s] {
    display: flex;
    flex-direction: column;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    max-height: 420px;
    overflow: hidden;
}

.plate-list-header[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container);
}

    .plate-list-header .material-icons-round[b-bfi2tex82s] {
        font-size: 1rem;
        color: var(--rs-on-surface-muted);
    }

.plate-copy-btn[b-bfi2tex82s] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--rs-outline);
    border-radius: 4px;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    padding: 2px 4px;
    transition: background 0.12s, color 0.12s;
}

    .plate-copy-btn:hover[b-bfi2tex82s] {
        background: var(--rs-surface-container-high);
        color: var(--rs-on-surface);
    }

    .plate-copy-btn .material-icons-round[b-bfi2tex82s] {
        font-size: 0.9rem;
    }

.plate-filter-box[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.plate-filter-icon[b-bfi2tex82s] {
    font-size: 0.9rem;
    color: var(--rs-on-surface-muted);
}

.plate-filter-input[b-bfi2tex82s] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.75rem;
    color: var(--rs-on-surface);
    min-width: 0;
}

    .plate-filter-input[b-bfi2tex82s]::placeholder {
        color: var(--rs-on-surface-muted);
    }

.plate-filter-clear[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: none;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 0;
}

    .plate-filter-clear:hover[b-bfi2tex82s] {
        color: var(--rs-on-surface);
    }

    .plate-filter-clear .material-icons-round[b-bfi2tex82s] {
        font-size: 0.85rem;
    }

.plate-list-body[b-bfi2tex82s] {
    overflow-y: auto;
    flex: 1;
    padding: 0.25rem 0;
}

.plate-list-row[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.2rem 0.65rem;
    font-size: 0.75rem;
    font-family: 'Roboto Mono', monospace;
    transition: background 0.1s;
}

    .plate-list-row:hover[b-bfi2tex82s] {
        background: var(--rs-surface-container-high);
    }

    .plate-list-row.stopped[b-bfi2tex82s] {
        color: var(--rs-on-warning-subtle);
    }

    .plate-list-row.issue[b-bfi2tex82s] {
        color: var(--rs-danger);
    }

.plate-grip[b-bfi2tex82s] {
    font-size: 0.85rem;
    color: var(--rs-on-surface-disabled);
    cursor: grab;
    flex-shrink: 0;
}

    .plate-list-row:hover .plate-grip[b-bfi2tex82s] {
        color: var(--rs-on-surface-muted);
    }

.plate-pos[b-bfi2tex82s] {
    min-width: 1.4rem;
    text-align: right;
    color: var(--rs-on-surface-muted);
    font-size: 0.68rem;
    font-weight: 600;
}

.plate-code[b-bfi2tex82s] {
    font-weight: 500;
    user-select: all;
}

/* ── Marca y observaciones del vagón en la rotación ──────────────────────────
   Mismos códigos que en TrainCompositionTwin; el CSS está aislado por componente,
   así que la paleta se declara aquí también (una línea por color). */
.marca-rojo[b-bfi2tex82s] { --marca-color: var(--rs-danger); }
.marca-naranja[b-bfi2tex82s] { --marca-color: var(--rs-warning); }
.marca-verde[b-bfi2tex82s] { --marca-color: var(--rs-success); }
.marca-azul[b-bfi2tex82s] { --marca-color: var(--rs-info); }
.marca-violeta[b-bfi2tex82s] { --marca-color: var(--rs-violet); }
.marca-cian[b-bfi2tex82s] { --marca-color: var(--rs-cyan); }

.plate-marca[b-bfi2tex82s] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--marca-color);
    flex-shrink: 0;
    cursor: help;
}

.plate-note[b-bfi2tex82s] {
    font-size: 0.8rem !important;
    color: var(--rs-on-surface-muted);
    flex-shrink: 0;
    cursor: help;
}

.plate-gps[b-bfi2tex82s] {
    margin-left: auto;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: none;
    padding: 1px 3px;
    border-radius: 3px;
    cursor: pointer;
    transition: background 0.12s;
}

    .plate-gps:hover[b-bfi2tex82s] {
        background: var(--rs-surface-container-high);
    }

    .plate-gps .material-icons-round[b-bfi2tex82s] {
        font-size: 0.8rem;
    }

    .plate-gps.on[b-bfi2tex82s] {
        color: var(--rs-success);
    }

    .plate-gps.off[b-bfi2tex82s] {
        color: var(--rs-on-surface-disabled);
    }

.plate-list-row.dragging[b-bfi2tex82s] {
    opacity: 0.4;
}

.plate-list-row.drag-over[b-bfi2tex82s] {
    border-top: 2px solid var(--rs-violet);
    margin-top: -2px;
}

.plate-list-row.gps-mismatch[b-bfi2tex82s] {
    background: var(--rs-warning-subtle);
}

    .plate-list-row.gps-mismatch:hover[b-bfi2tex82s] {
        background: var(--rs-warning-subtle);
    }

.plate-gps.origin[b-bfi2tex82s] {
    color: var(--rs-success);
}

.plate-gps.elsewhere[b-bfi2tex82s] {
    color: var(--rs-warning);
}

.plate-gps.no-signal[b-bfi2tex82s] {
    color: var(--rs-on-surface-muted);
}

.plate-geozone-tag[b-bfi2tex82s] {
    font-size: 0.58rem;
    font-weight: 600;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border: 1px solid var(--rs-warning-subtle);
    border-radius: 3px;
    padding: 0 4px;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.5;
    margin-left: auto;
    flex-shrink: 0;
}

/* Última geozona conocida, no posición actual: se lee como dato de segunda. */
.plate-geozone-tag.stale[b-bfi2tex82s] {
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container);
    border-color: var(--rs-outline-variant);
    border-style: dashed;
    font-weight: 500;
}

/* ── GPS summary bar ───────────────────────────────────────────── */

.gps-summary[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.65rem;
    font-size: 0.68rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    flex-wrap: wrap;
}

    .gps-summary.all-ok[b-bfi2tex82s] {
        background: var(--rs-success-subtle);
    }

    .gps-summary.has-warnings[b-bfi2tex82s] {
        background: var(--rs-warning-subtle);
    }

    .gps-summary.loading[b-bfi2tex82s] {
        color: var(--rs-on-surface-muted);
        gap: 0.4rem;
    }

.gps-summary-chip[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 1px 5px;
    border-radius: 3px;
    font-weight: 600;
    line-height: 1.5;
}

    .gps-summary-chip .material-icons-round[b-bfi2tex82s] {
        font-size: 0.72rem;
    }

    .gps-summary-chip.origin[b-bfi2tex82s] {
        color: var(--rs-on-success-subtle);
        background: var(--rs-success-subtle);
    }

    .gps-summary-chip.elsewhere[b-bfi2tex82s] {
        color: var(--rs-on-warning-subtle);
        background: var(--rs-warning-subtle);
    }

    .gps-summary-chip.no-signal[b-bfi2tex82s] {
        color: var(--rs-on-surface-variant);
        background: var(--rs-surface-container);
    }

    .gps-summary-chip.no-device[b-bfi2tex82s] {
        color: var(--rs-on-surface-muted);
        background: var(--rs-surface-container-low);
    }

    .gps-summary-chip.dispersed[b-bfi2tex82s] {
        color: var(--rs-violet);
        background: var(--rs-violet-subtle);
    }

.gps-refresh-btn[b-bfi2tex82s] {
    margin-left: auto;
    background: transparent;
    border: none;
    padding: 1px 3px;
    border-radius: 3px;
    cursor: pointer;
    color: var(--rs-on-surface-muted);
    display: inline-flex;
    align-items: center;
    transition: background 0.12s, color 0.12s;
}

    .gps-refresh-btn:hover[b-bfi2tex82s] {
        background: var(--rs-surface-container-high);
        color: var(--rs-on-surface);
    }

    .gps-refresh-btn:disabled[b-bfi2tex82s] {
        cursor: default;
        opacity: 0.5;
    }

    .gps-refresh-btn .material-icons-round[b-bfi2tex82s] {
        font-size: 0.85rem;
    }

.gps-summary .spin[b-bfi2tex82s],
.gps-refresh-btn .spin[b-bfi2tex82s] {
    animation: lz-gps-spin-b-bfi2tex82s 0.9s linear infinite;
}

@keyframes lz-gps-spin-b-bfi2tex82s {
    to { transform: rotate(360deg); }
}

/* ── Banner del enlace con el DAT (7.2) ──────────────────────────────────
   Mismos tres estados que el semáforo del listado de trayectos. El gris NO es
   un error: una rotación sin DAT es lo normal hasta que llega uno. */
.dat-banner[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.75rem;
    margin-bottom: 0.6rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.dat-banner-texto[b-bfi2tex82s] {
    flex: 1;
}

.dat-banner--asociado[b-bfi2tex82s] {
    color: var(--rs-on-success-subtle);
    background: var(--rs-success-subtle);
    border-color: var(--rs-success-subtle);
}

.dat-banner--pendiente[b-bfi2tex82s] {
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning-subtle);
}

.dat-banner--sin-asociar[b-bfi2tex82s] {
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border-color: var(--rs-outline-variant);
}

/* ── Aviso de lanzadera: todos los DATs pendientes, visibles al entrar ── */
.dat-pendientes-strip[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.55rem 0.85rem;
    border-radius: 8px;
    background: var(--rs-warning-subtle);
    border: 1px solid var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.8rem;
    font-weight: 600;
}

.dat-pendientes-strip > .material-icons-round[b-bfi2tex82s] {
    font-size: 1.1rem;
}

.dat-pendientes-texto[b-bfi2tex82s] {
    margin-right: 0.25rem;
}

.dat-pendiente-item[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border: 1px solid var(--rs-warning-subtle);
    border-radius: 999px;
    background: var(--rs-surface);
    color: var(--rs-on-warning-subtle);
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.15s;
}

.dat-pendiente-item:hover[b-bfi2tex82s] {
    background: var(--rs-warning-subtle);
    box-shadow: 0 1px 4px rgba(249, 115, 22, 0.35);
}

.dat-pendiente-item .material-icons-round[b-bfi2tex82s] {
    font-size: 0.9rem;
}

/* ===== Seguir esta lanzadera (estrella del hero) =====
   El hero es oscuro, así que el botón se dibuja como el resto de controles de esa zona
   (fondo translúcido y borde blanco) y no como los botones claros del cuerpo de la página. */
.seguir-btn[b-bfi2tex82s] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    height: 34px;
    padding: 0 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    background: var(--rs-shade-strong);
    color: var(--rs-on-primary);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.seguir-btn .material-icons-round[b-bfi2tex82s] { font-size: 1.05rem; }

.seguir-btn:hover:not(:disabled)[b-bfi2tex82s] {
    background: rgba(245, 158, 11, 0.25);
    color: var(--rs-warning-subtle);
    border-color: rgba(245, 158, 11, 0.55);
}

.seguir-btn.seguir-on[b-bfi2tex82s] {
    background: var(--rs-warning);
    color: var(--rs-on-primary);
    border-color: transparent;
}

.seguir-btn:disabled[b-bfi2tex82s] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* Rotacion ya circulada: la composicion se mira, no se toca. */
.composicion-readonly[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0 0 0.6rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    font-size: 0.82rem;
    line-height: 1.35;
}

.composicion-readonly .material-icons-round[b-bfi2tex82s] {
    font-size: 1.1rem;
    flex: 0 0 auto;
    color: var(--rs-on-surface-muted);
}

.composicion-readonly b[b-bfi2tex82s] {
    font-weight: 800;
    color: var(--rs-on-surface);
}

/* Escribir sobre el histórico es la excepción del ADMIN: se avisa, no se disfraza de edición
   normal. Aviso (no peligro): el cambio es legítimo, pero queda registrado. */
.composicion-historico-admin[b-bfi2tex82s] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0 0 0.6rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--rs-warning);
    border-radius: 12px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.82rem;
    line-height: 1.35;
}

.composicion-historico-admin .material-icons-round[b-bfi2tex82s] {
    font-size: 1.1rem;
    flex: 0 0 auto;
}

.composicion-historico-admin b[b-bfi2tex82s] {
    font-weight: 800;
}
/* /Pages/Lanzaderas/LanzaderaGpsAvisoRevisionDialog.razor.rz.scp.css */
.gr-dialog[b-kzckpetqfa] {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.gr-head[b-kzckpetqfa] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.gr-plate[b-kzckpetqfa] {
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.gr-trip[b-kzckpetqfa] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
}

.gr-trip .material-icons-round[b-kzckpetqfa] { font-size: 0.95rem; }

.gr-facts[b-kzckpetqfa] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0;
}

.gr-facts dt[b-kzckpetqfa] {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    color: var(--rs-on-surface-muted);
}

.gr-facts dd[b-kzckpetqfa] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.gr-detail[b-kzckpetqfa] {
    margin: 0;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: 0.82rem;
}

.gr-options[b-kzckpetqfa] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.gr-option[b-kzckpetqfa] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    width: 100%;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    cursor: pointer;
    color: var(--rs-on-surface-variant);
    transition: border-color .15s, background .15s;
}

.gr-option:hover[b-kzckpetqfa] {
    border-color: var(--rs-outline-strong);
}

.gr-option.is-on[b-kzckpetqfa] {
    border-color: var(--rs-primary);
    background: var(--rs-primary-subtle);
    color: var(--rs-on-surface);
}

.gr-option:focus-visible[b-kzckpetqfa] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

.gr-option-text[b-kzckpetqfa] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.gr-option-title[b-kzckpetqfa] {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
}

.gr-option-sub[b-kzckpetqfa] {
    font-size: 0.78rem;
}

.gr-note-label[b-kzckpetqfa] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.gr-note[b-kzckpetqfa] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: 0.5rem 0.65rem;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font: inherit;
    font-size: 0.88rem;
    resize: vertical;
}

.gr-note:focus-visible[b-kzckpetqfa] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 1px;
}

.gr-note-count[b-kzckpetqfa] {
    align-self: flex-end;
    margin-top: -0.5rem;
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    font-variant-numeric: tabular-nums;
}

.gr-footer[b-kzckpetqfa] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

@media (max-width: 720px) {
    .gr-facts[b-kzckpetqfa] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Lanzaderas/LanzaderaGpsAvisos.razor.rz.scp.css */
/* Avisos GPS por vagón. Misma anatomía que el histórico de lanzaderas fijas (PREMISAS-UI):
   una sola tarjeta con cabecera, resumen, filtros y cuerpo separados por líneas. Solo tokens. */

.ga-page[b-zr00b4u3d8] {
    padding: 1.25rem 1.5rem 2rem;
    max-width: 1240px;
    margin: 0 auto;
}

.ga-loading[b-zr00b4u3d8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 4rem 0;
    color: var(--rs-on-surface-variant);
}

.ga-shell[b-zr00b4u3d8] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 18px;
    box-shadow: var(--rs-shadow-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.ga-shell > * + *[b-zr00b4u3d8] {
    border-top: 1px solid var(--rs-outline-variant);
}

/* ── Cabecera ─────────────────────────────────────────────────────────────────── */

.ga-hero[b-zr00b4u3d8] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1.1rem 1.4rem 1rem;
    border-top: 5px solid var(--rs-primary);
}

.ga-hero-main[b-zr00b4u3d8] {
    display: flex;
    align-items: stretch;
    gap: 0.9rem;
    min-width: 0;
    flex: 1 1 520px;
}

.ga-back[b-zr00b4u3d8] {
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--rs-on-surface-variant);
    flex-shrink: 0;
    align-self: flex-start;
}

.ga-back:hover[b-zr00b4u3d8] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
}

.ga-back:focus-visible[b-zr00b4u3d8],
.ga-chipbtn:focus-visible[b-zr00b4u3d8],
.ga-clear-all:focus-visible[b-zr00b4u3d8],
.ga-link:focus-visible[b-zr00b4u3d8],
.ga-tag.is-link:focus-visible[b-zr00b4u3d8],
.ga-search:focus-within[b-zr00b4u3d8] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

.ga-rail[b-zr00b4u3d8] {
    width: 6px;
    align-self: stretch;
    min-height: 42px;
    border-radius: 3px;
    flex-shrink: 0;
    background: var(--rs-primary);
}

.ga-hero-text[b-zr00b4u3d8] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ga-hero-title[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.ga-hero-title h1[b-zr00b4u3d8] {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    letter-spacing: -0.01em;
}

.ga-hero-meta[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    font-size: 0.82rem;
    color: var(--rs-on-surface-variant);
}

.ga-hero-meta span[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.ga-hero-meta .material-icons-round[b-zr00b4u3d8] {
    font-size: 16px;
    color: var(--rs-on-surface-muted);
}

.ga-hero-actions[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ga-pill[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
}

.ga-pill .material-icons-round[b-zr00b4u3d8] { font-size: 15px; }

.ga-pill-off[b-zr00b4u3d8] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

/* ── Resumen ──────────────────────────────────────────────────────────────────── */

.ga-stats[b-zr00b4u3d8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.6rem;
    padding: 0.9rem 1.4rem;
}

.ga-stat[b-zr00b4u3d8] {
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-left: 3px solid var(--rs-outline);
    border-radius: 10px;
    padding: 0.6rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.ga-stat.is-info[b-zr00b4u3d8] { border-left-color: var(--rs-info); }
.ga-stat.is-ok[b-zr00b4u3d8] { border-left-color: var(--rs-success); }
.ga-stat.is-danger[b-zr00b4u3d8] { border-left-color: var(--rs-danger); }
.ga-stat.is-muted[b-zr00b4u3d8] { border-left-color: var(--rs-outline-strong); }

.ga-stat-hero[b-zr00b4u3d8] {
    grid-column: span 2;
}

.ga-stat-label[b-zr00b4u3d8] {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ga-stat-value[b-zr00b4u3d8] {
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.ga-stat-foot[b-zr00b4u3d8] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.1rem;
}

.ga-stat-foot .material-icons-round[b-zr00b4u3d8] { font-size: 14px; }
.ga-stat-foot.is-warn[b-zr00b4u3d8] { color: var(--rs-on-warning-subtle); }

.ga-link[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 0;
    background: transparent;
    color: var(--rs-primary-text);
    font-size: 0.74rem;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.ga-link .material-icons-round[b-zr00b4u3d8] { font-size: 15px; }

/* ── Filtros ──────────────────────────────────────────────────────────────────── */

.ga-filters[b-zr00b4u3d8] {
    padding: 0.75rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.ga-toolbar[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ga-trip-banner[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.85rem;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    border-radius: 10px;
    font-size: 0.85rem;
}

.ga-trip-banner .material-icons-round[b-zr00b4u3d8] { font-size: 17px; }

.ga-search[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0 0.7rem;
    height: 38px;
    flex: 1 1 220px;
    max-width: 320px;
}

.ga-search > .material-icons-round[b-zr00b4u3d8] {
    font-size: 18px;
    color: var(--rs-on-surface-muted);
}

.ga-search input[b-zr00b4u3d8] {
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--rs-on-surface);
    font-size: 0.88rem;
    width: 100%;
    height: 100%;
}

.ga-search input[b-zr00b4u3d8]::placeholder {
    color: var(--rs-on-surface-muted);
}

.ga-chips[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.ga-chipbtn[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    height: 30px;
    padding: 0 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.ga-chipbtn .material-icons-round[b-zr00b4u3d8] { font-size: 15px; }

.ga-chipbtn:hover[b-zr00b4u3d8] {
    border-color: var(--rs-outline-strong);
    color: var(--rs-on-surface);
}

.ga-chipbtn.is-on[b-zr00b4u3d8] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.ga-chipbtn.is-ok.is-on[b-zr00b4u3d8] { background: var(--rs-success); border-color: var(--rs-success); }
.ga-chipbtn.is-live.is-on[b-zr00b4u3d8] { background: var(--rs-info); border-color: var(--rs-info); }
.ga-chipbtn.is-danger.is-on[b-zr00b4u3d8] { background: var(--rs-danger); border-color: var(--rs-danger); }

.ga-chipbtn-n[b-zr00b4u3d8] {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--rs-shade);
    font-variant-numeric: tabular-nums;
    min-width: 1.3em;
    text-align: center;
}

.ga-chipbtn.is-on .ga-chipbtn-n[b-zr00b4u3d8] {
    background: color-mix(in srgb, var(--rs-on-primary) 22%, transparent);
}

.ga-dot[b-zr00b4u3d8] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--ga-color);
}

.ga-clear-all[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 0;
    background: transparent;
    color: var(--rs-primary-text);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    border-radius: 6px;
}

.ga-clear-all:hover[b-zr00b4u3d8] { background: var(--rs-shade-subtle); }
.ga-clear-all .material-icons-round[b-zr00b4u3d8] { font-size: 16px; }

/* ── Viajes ───────────────────────────────────────────────────────────────────── */

.ga-body[b-zr00b4u3d8] {
    padding: 1rem 1.4rem 1.4rem;
}

.ga-feed[b-zr00b4u3d8] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ga-card[b-zr00b4u3d8] {
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: 0.75rem 0.95rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.ga-card.is-danger[b-zr00b4u3d8] { border-left-color: var(--rs-danger); }
.ga-card.is-warning[b-zr00b4u3d8] { border-left-color: var(--rs-warning); }
.ga-card.is-success[b-zr00b4u3d8] { border-left-color: var(--rs-success); }
.ga-card.is-info[b-zr00b4u3d8] { border-left-color: var(--rs-info); }

.ga-card-top[b-zr00b4u3d8] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ga-card-title[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    min-width: 0;
}

.ga-card-shuttle[b-zr00b4u3d8] {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.ga-card-route[b-zr00b4u3d8] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.ga-tags[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.ga-tag[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    border: 0;
    font-variant-numeric: tabular-nums;
}

.ga-tag .material-icons-round[b-zr00b4u3d8] { font-size: 14px; }
.ga-tag.is-link[b-zr00b4u3d8] { cursor: pointer; }
.ga-tag.is-link:hover[b-zr00b4u3d8] { background: var(--rs-surface-container-high); color: var(--rs-on-surface); }

.ga-tag.is-danger[b-zr00b4u3d8] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ga-tag.is-warning[b-zr00b4u3d8] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.ga-tag.is-success[b-zr00b4u3d8] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.ga-tag.is-info[b-zr00b4u3d8] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.ga-tag.is-neutral[b-zr00b4u3d8] { background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle); }

.ga-lines[b-zr00b4u3d8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.ga-line[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0;
    border-top: 1px solid var(--rs-outline-variant);
}

.ga-line.is-review[b-zr00b4u3d8] {
    background: color-mix(in srgb, var(--rs-danger-subtle) 60%, transparent);
    margin: 0 -0.95rem;
    padding-left: 0.95rem;
    padding-right: 0.95rem;
}

.ga-plate[b-zr00b4u3d8] {
    flex: 0 0 9.5rem;
    font-weight: 700;
    font-size: 0.86rem;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.ga-facts[b-zr00b4u3d8] {
    display: flex;
    align-items: center;
    gap: 0.4rem 1rem;
    flex-wrap: wrap;
    min-width: 0;
}

.ga-fact[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.ga-fact-time[b-zr00b4u3d8] {
    font-size: 0.82rem;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.ga-fact-note[b-zr00b4u3d8] {
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

.ga-fact-note.is-warn[b-zr00b4u3d8] {
    color: var(--rs-on-warning-subtle);
    font-style: normal;
    font-weight: 600;
}

.ga-badge[b-zr00b4u3d8] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.05rem 0.45rem;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 700;
}

.ga-badge .material-icons-round[b-zr00b4u3d8] { font-size: 13px; }

.ga-badge--salida[b-zr00b4u3d8] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.ga-badge--llegada[b-zr00b4u3d8] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.ga-badge--no-llegada[b-zr00b4u3d8] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.ga-badge--no-cert[b-zr00b4u3d8] { background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle); }
.ga-badge--por-revisar[b-zr00b4u3d8] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.ga-badge--revisada[b-zr00b4u3d8] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.ga-badge--descartada[b-zr00b4u3d8] { background: var(--rs-neutral-subtle); color: var(--rs-on-neutral-subtle); }
.ga-badge--resuelta[b-zr00b4u3d8] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }

/* ── Vacíos ───────────────────────────────────────────────────────────────────── */

.ga-empty[b-zr00b4u3d8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    border: 1px dashed var(--rs-outline);
    border-radius: 14px;
    text-align: center;
    color: var(--rs-on-surface-variant);
}

.ga-empty-icon[b-zr00b4u3d8] {
    font-size: 3rem;
    color: var(--rs-on-surface-muted);
    margin-bottom: 0.75rem;
}

.ga-empty h3[b-zr00b4u3d8] {
    margin: 0 0 0.5rem 0;
    color: var(--rs-on-surface);
}

.ga-empty p[b-zr00b4u3d8] {
    max-width: 520px;
    margin: 0;
    font-size: 0.9rem;
}

/* ── Ancho estrecho ───────────────────────────────────────────────────────────── */

@media (max-width: 720px) {
    .ga-page[b-zr00b4u3d8] {
        padding: 0.75rem 0.6rem 1.5rem;
    }

    .ga-stats[b-zr00b4u3d8],
    .ga-filters[b-zr00b4u3d8],
    .ga-body[b-zr00b4u3d8] {
        padding-left: 0.9rem;
        padding-right: 0.9rem;
    }

    .ga-stat-hero[b-zr00b4u3d8] {
        grid-column: 1 / -1;
    }

    .ga-rail[b-zr00b4u3d8] {
        display: none;
    }

    .ga-line[b-zr00b4u3d8] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.3rem;
    }

    .ga-plate[b-zr00b4u3d8] {
        flex-basis: auto;
    }
}
/* /Pages/Lanzaderas/LanzaderaOperationalPanel.razor.rz.scp.css */
.op-panel[b-3ieytaa3pl] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    overflow: hidden;
}

.op-header[b-3ieytaa3pl] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 1rem;
    border: none;
    background: linear-gradient(120deg, #fbfcfe, #f5eaf3);
    cursor: pointer;
}

.op-header-left[b-3ieytaa3pl] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.op-header-left .material-icons-round[b-3ieytaa3pl] { color: var(--rs-primary-text); }

.op-title[b-3ieytaa3pl] {
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--rs-on-surface);
}

.op-badges[b-3ieytaa3pl] { display: inline-flex; gap: 0.4rem; }

.op-badge[b-3ieytaa3pl] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
}

.op-badge .material-icons-round[b-3ieytaa3pl] { font-size: 0.85rem; }

.op-badge-danger[b-3ieytaa3pl] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.op-badge-warn[b-3ieytaa3pl] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.op-badge-ok[b-3ieytaa3pl] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }

.op-body[b-3ieytaa3pl] { padding: 0.9rem 1rem; border-top: 1px solid var(--rs-outline-variant); }

.op-loading[b-3ieytaa3pl],
.op-empty[b-3ieytaa3pl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.86rem;
    padding: 0.6rem 0;
}

.op-empty .material-icons-round[b-3ieytaa3pl] { color: var(--rs-primary-text); }

.op-grid[b-3ieytaa3pl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 760px) {
    .op-grid[b-3ieytaa3pl] { grid-template-columns: 1fr; }
}

.op-col[b-3ieytaa3pl] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.op-col-head[b-3ieytaa3pl] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 700;
    font-size: 0.82rem;
    padding-bottom: 0.35rem;
    border-bottom: 2px solid var(--rs-outline-variant);
}

.op-col-head .material-icons-round[b-3ieytaa3pl] { font-size: 1rem; }
.op-col-issue[b-3ieytaa3pl] { color: var(--rs-danger); }
.op-col-stop[b-3ieytaa3pl] { color: var(--rs-warning); }

.op-col-empty[b-3ieytaa3pl] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
    padding: 0.5rem 0;
}

.op-row[b-3ieytaa3pl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.5rem;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    transition: background 0.12s;
}

.op-row:hover[b-3ieytaa3pl] { background: var(--rs-surface-container-low); }

.op-row-pos[b-3ieytaa3pl] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--rs-primary-text);
    font-family: 'IBM Plex Mono', monospace;
    flex: 0 0 auto;
}

.op-row-plate[b-3ieytaa3pl] {
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    font-size: 0.82rem;
    color: var(--rs-on-surface);
    flex: 0 0 auto;
}

.op-row-main[b-3ieytaa3pl] {
    flex: 1;
    min-width: 0;
    font-size: 0.8rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.op-row-date[b-3ieytaa3pl] {
    font-size: 0.74rem;
    color: var(--rs-on-surface-muted);
    flex: 0 0 auto;
}
/* /Pages/Lanzaderas/LanzaderaPreventivosDialog.razor.rz.scp.css */
/* Simulación de preventivos de una lanzadera.
   Ningún color literal: todo sale de los tokens semánticos de railsider-theme.css, que son los
   que cambian en modo oscuro. */

.lp-dialog[b-ymzz4rjmp0] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

/* ---- Estados ------------------------------------------------------------- */

.lp-loading[b-ymzz4rjmp0],
.lp-empty[b-ymzz4rjmp0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.88rem;
}

.lp-loading-sub[b-ymzz4rjmp0] {
    margin-top: 0.2rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
}

.lp-empty .material-icons-round[b-ymzz4rjmp0] {
    font-size: 1.8rem;
    color: var(--rs-on-surface-muted);
}

.lp-empty-filtro[b-ymzz4rjmp0] {
    padding: 1.25rem 1rem;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 8px;
}

.lp-link[b-ymzz4rjmp0] {
    border: none;
    background: none;
    padding: 0;
    font: inherit;
    font-weight: 700;
    color: var(--rs-primary-text);
    cursor: pointer;
    text-decoration: underline;
}

.lp-link:focus-visible[b-ymzz4rjmp0],
.lp-chip:focus-visible[b-ymzz4rjmp0] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

/* ---- Cabecera de la rotación --------------------------------------------- */

.lp-rotacion[b-ymzz4rjmp0] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.75rem 0.9rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
}

.lp-rotacion-ruta[b-ymzz4rjmp0] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.lp-rotacion-ruta .material-icons-round[b-ymzz4rjmp0] {
    font-size: 1.1rem;
    color: var(--rs-primary-text);
}

.lp-ruta[b-ymzz4rjmp0] {
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--rs-on-surface);
}

.lp-chip-km[b-ymzz4rjmp0],
.lp-chip-ritmo[b-ymzz4rjmp0],
.lp-chip-aviso[b-ymzz4rjmp0],
.lp-chip-circuito[b-ymzz4rjmp0] {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.16rem 0.55rem;
    border-radius: 999px;
}

.lp-chip-km[b-ymzz4rjmp0] {
    /* No existe --rs-on-primary-subtle: sobre el fondo sutil de marca el texto es --rs-primary-text,
       que es el que se aclara en oscuro. --rs-primary es un relleno, no un color de texto. */
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.lp-chip-ritmo[b-ymzz4rjmp0] {
    background: var(--rs-indigo-subtle);
    color: var(--rs-on-indigo-subtle);
}

.lp-chip-aviso[b-ymzz4rjmp0] {
    font-size: 0.7rem;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.lp-chip-circuito[b-ymzz4rjmp0] {
    font-size: 0.7rem;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

/* Las patas del itinerario. El borde izquierdo distingue lo que va cargado de lo que
   vuelve arrastrando solo la tara: es la diferencia que explica el TKBR por rotación. */
.lp-patas[b-ymzz4rjmp0] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.lp-pata[b-ymzz4rjmp0] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    border-left: 3px solid var(--rs-outline);
    background: var(--rs-surface);
    font-size: 0.74rem;
    color: var(--rs-on-surface-variant);
}

.lp-pata-cargada[b-ymzz4rjmp0] {
    border-left-color: var(--rs-primary);
}

.lp-pata-vacia[b-ymzz4rjmp0] {
    border-left-color: var(--rs-outline-variant);
}

.lp-pata-ruta[b-ymzz4rjmp0] {
    font-weight: 700;
    color: var(--rs-on-surface);
}

.lp-pata-km[b-ymzz4rjmp0] {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

.lp-pata-peso[b-ymzz4rjmp0] {
    color: var(--rs-on-surface-muted);
}

.lp-rotacion-datos[b-ymzz4rjmp0] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1.1rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
}

.lp-rotacion-datos b[b-ymzz4rjmp0] {
    color: var(--rs-on-surface-muted);
    font-weight: 700;
    margin-right: 0.25rem;
}

.lp-series[b-ymzz4rjmp0] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.lp-serie[b-ymzz4rjmp0] {
    display: flex;
    flex-direction: column;
    min-width: 130px;
    padding: 0.4rem 0.6rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
}

.lp-serie-nombre[b-ymzz4rjmp0] {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
}

.lp-serie-tkbr[b-ymzz4rjmp0] {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 1rem;
    font-weight: 800;
    color: var(--rs-primary-text);
}

.lp-serie-pie[b-ymzz4rjmp0] {
    font-size: 0.66rem;
    color: var(--rs-on-surface-muted);
}

/* ---- Barra: chips de filtro, primero en caer, orden --------------------- */

.lp-toolbar[b-ymzz4rjmp0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

.lp-chips[b-ymzz4rjmp0] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.lp-orden[b-ymzz4rjmp0] {
    margin-left: auto;
}

/* El estado del filtro se ve sin abrir nada: el activo lleva relleno, los demás solo borde.
   Un chip de problema también lo dice con el texto («4 críticos»), nunca solo con el color. */
.lp-chip[b-ymzz4rjmp0] {
    font: inherit;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.lp-chip:hover[b-ymzz4rjmp0] {
    border-color: var(--rs-outline-strong);
    background: var(--rs-surface-container);
}

.lp-chip.is-on[b-ymzz4rjmp0] {
    background: var(--rs-surface-inverse);
    border-color: var(--rs-surface-inverse);
    color: var(--rs-on-surface-inverse);
}

.lp-chip-danger[b-ymzz4rjmp0] {
    border-color: var(--rs-danger);
    color: var(--rs-on-danger-subtle);
}

.lp-chip-danger.is-on[b-ymzz4rjmp0] {
    background: var(--rs-danger-subtle);
    border-color: var(--rs-danger);
    color: var(--rs-on-danger-subtle);
}

.lp-chip-warn[b-ymzz4rjmp0] {
    border-color: var(--rs-warning);
    color: var(--rs-on-warning-subtle);
}

.lp-chip-warn.is-on[b-ymzz4rjmp0] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
    color: var(--rs-on-warning-subtle);
}

.lp-chip-muted[b-ymzz4rjmp0] {
    color: var(--rs-on-surface-muted);
}

.lp-chip-muted.is-on[b-ymzz4rjmp0] {
    background: var(--rs-surface-container-high);
    border-color: var(--rs-outline-strong);
    color: var(--rs-on-surface);
}

.lp-primero[b-ymzz4rjmp0] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
}

.lp-primero .material-icons-round[b-ymzz4rjmp0] {
    font-size: 1rem;
    color: var(--rs-danger);
}

.lp-aviso[b-ymzz4rjmp0] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.8rem;
}

.lp-aviso .material-icons-round[b-ymzz4rjmp0] {
    font-size: 1.1rem;
}

/* ---- Tabla: un vagón por fila, una intervención por columna --------------- */

.lp-table-wrap[b-ymzz4rjmp0] {
    max-height: 58vh;
    overflow: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
}

.lp-table[b-ymzz4rjmp0] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.8rem;
    color: var(--rs-on-surface);
}

.lp-table th[b-ymzz4rjmp0] {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.5rem 0.6rem;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
    text-align: left;
    white-space: nowrap;
}

.lp-th-num[b-ymzz4rjmp0] {
    text-align: right;
}

.lp-th-hito[b-ymzz4rjmp0] {
    text-align: center;
    min-width: 7.5rem;
}

.lp-table td[b-ymzz4rjmp0] {
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    vertical-align: middle;
    white-space: nowrap;
}

.lp-table tbody tr:last-child td[b-ymzz4rjmp0] {
    border-bottom: none;
}

.lp-table tbody tr:hover td[b-ymzz4rjmp0] {
    background: var(--rs-surface-hover);
}

/* El borde izquierdo lleva el estado del vagón; el semáforo lo repite con su texto en el title. */
.lp-row .lp-td-vagon[b-ymzz4rjmp0] {
    border-left: 4px solid var(--lp-color, var(--rs-outline));
}

.lp-td-vagon[b-ymzz4rjmp0] {
    min-width: 14rem;
}

.lp-vagon[b-ymzz4rjmp0] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.lp-td-num[b-ymzz4rjmp0] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface-variant);
}

.lp-td-hito[b-ymzz4rjmp0] {
    text-align: center;
}

/* La próxima intervención del vagón: es la que manda su semáforo, y se marca con un borde en la
   celda, no solo con el color del badge. */
.lp-td-proxima[b-ymzz4rjmp0] {
    box-shadow: inset 0 0 0 2px var(--lp-color, var(--rs-outline));
    background: color-mix(in srgb, var(--lp-color, var(--rs-outline)) 8%, transparent);
}

.lp-semaforo[b-ymzz4rjmp0] {
    display: inline-block;
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.lp-uic[b-ymzz4rjmp0] {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--rs-on-surface);
}

.lp-inactivo[b-ymzz4rjmp0] {
    text-decoration: line-through;
    color: var(--rs-on-surface-muted);
}

.lp-tipo[b-ymzz4rjmp0] {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.05rem 0.4rem;
    border-radius: 4px;
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.lp-pos[b-ymzz4rjmp0] {
    font-size: 0.68rem;
    color: var(--rs-on-surface-muted);
    font-variant-numeric: tabular-nums;
}

.lp-nd[b-ymzz4rjmp0] {
    color: var(--rs-on-surface-muted);
    font-size: 0.74rem;
}

.lp-sin-estimar[b-ymzz4rjmp0] {
    font-style: italic;
}

/* Badge de una intervención: rotaciones grandes, fecha pequeña entre paréntesis. Fondo sutil +
   su color «on-», no el relleno a plena intensidad: en modo oscuro los tokens de estado son
   pasteles claros y el texto blanco encima desaparece. */
.lp-hito[b-ymzz4rjmp0] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: var(--lp-fondo, var(--rs-surface-container));
    color: var(--lp-texto, var(--rs-on-surface));
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.lp-hito-valor[b-ymzz4rjmp0] {
    font-weight: 800;
    font-size: 0.86rem;
}

.lp-hito-unidad[b-ymzz4rjmp0] {
    font-size: 0.66rem;
    font-weight: 600;
    opacity: 0.85;
}

.lp-hito-fecha[b-ymzz4rjmp0] {
    font-size: 0.66rem;
    font-weight: 600;
    opacity: 0.85;
}

/* Aviso: el consumo de la lanzadera adelantaría la intervención respecto al informe. No cambia la
   fecha ni el semáforo; por eso es un icono pequeño y no un color. */
.lp-hito-consumo[b-ymzz4rjmp0] {
    font-size: 0.85rem !important;
    color: var(--rs-warning);
    vertical-align: -2px;
}

.lp-hito-vencida[b-ymzz4rjmp0] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.lp-hito-vencida .lp-hito-valor[b-ymzz4rjmp0] {
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.04em;
}

.lp-leyenda[b-ymzz4rjmp0] {
    margin: 0;
    font-size: 0.7rem;
    color: var(--rs-on-surface-muted);
}

/* ---- Hipótesis ----------------------------------------------------------- */

.lp-hipotesis[b-ymzz4rjmp0] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    background: var(--rs-surface-container-low);
}

.lp-hipotesis summary[b-ymzz4rjmp0] {
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.lp-hipotesis ul[b-ymzz4rjmp0] {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface-variant);
}

.lp-hipotesis li[b-ymzz4rjmp0] {
    margin-bottom: 0.2rem;
}

.lp-nota[b-ymzz4rjmp0] {
    margin: 0.5rem 0 0;
    font-size: 0.72rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

/* ---- Ancho estrecho ------------------------------------------------------ */

@media (max-width: 768px) {
    .lp-table-wrap[b-ymzz4rjmp0] {
        max-height: none;
    }

    /* Los datos de apoyo se van; quedan el vagón y sus intervenciones, que es la pregunta. */
    .lp-th-num[b-ymzz4rjmp0],
    .lp-td-num[b-ymzz4rjmp0] {
        display: none;
    }

    .lp-td-vagon[b-ymzz4rjmp0] {
        min-width: 0;
    }

    .lp-vagon[b-ymzz4rjmp0] {
        flex-wrap: wrap;
    }

    .lp-th-hito[b-ymzz4rjmp0] {
        min-width: 0;
    }

    .lp-serie[b-ymzz4rjmp0] {
        min-width: 110px;
    }

    .lp-orden[b-ymzz4rjmp0] {
        margin-left: 0;
    }
}
/* /Pages/Lanzaderas/LanzaderasIndex.razor.rz.scp.css */
.lanzaderas-index-card[b-99xr45r5yc] {
    max-width: 1600px;
}

.index-topbar[b-99xr45r5yc] {
    /* Altura unica de todos los controles de la barra: si un control nuevo no la
       usa, la fila se descuadra. Ver .index-topbar-actions ::deep .rz-button. */
    --tb-h: 38px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

/* ===== Skeletons ===== */
.skeleton[b-99xr45r5yc] {
    display: block;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-low) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-99xr45r5yc 1.4s ease-in-out infinite;
}

@keyframes skeleton-shimmer-b-99xr45r5yc {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

.skeleton-card[b-99xr45r5yc] { cursor: default !important; pointer-events: none; }
.skeleton-icon[b-99xr45r5yc] { width: 42px; height: 42px; border-radius: 12px; flex: 0 0 auto; }
.skeleton-line[b-99xr45r5yc] { height: 16px; margin: 3px 0; }
.skeleton-thin[b-99xr45r5yc] { height: 11px; }
.skeleton-block[b-99xr45r5yc] { height: 44px; border-radius: 10px; }

/* ===== Navegador de semana ===== */
.week-nav[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.week-arrow[b-99xr45r5yc] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    width: var(--tb-h, 38px);
    height: var(--tb-h, 38px);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.week-arrow:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.week-pill[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    height: var(--tb-h, 38px);
    gap: 0.5rem;
    background: linear-gradient(120deg, #631656, #8b3d7c);
    color: var(--rs-on-primary);
    padding: 0.5rem 1.1rem;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.25);
}

.week-pill .material-icons-round[b-99xr45r5yc] { font-size: 1.05rem; opacity: 0.85; }

.week-label[b-99xr45r5yc] {
    font-weight: 700;
    font-size: 0.92rem;
    min-width: 180px;
    text-align: center;
}

.week-today[b-99xr45r5yc] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.82rem;
    height: var(--tb-h, 38px);
    padding: 0 0.9rem;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.week-today:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

/* ===== KPIs ===== */
.kpi-row[b-99xr45r5yc] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.75rem;
}

.kpi-card[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
    position: relative;
    overflow: hidden;
}

/* Acento de color como barra lateral, no como fondo (coherente con el resto de la app) */
.kpi-card[b-99xr45r5yc]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--rs-primary);
}

.kpi-icon[b-99xr45r5yc] {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    flex: 0 0 auto;
}

.kpi-icon .material-icons-round[b-99xr45r5yc] { font-size: 1.3rem; }

.kpi-body[b-99xr45r5yc] { display: flex; flex-direction: column; line-height: 1.15; }

.kpi-value[b-99xr45r5yc] {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.kpi-label[b-99xr45r5yc] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
}

.kpi-card.kpi-blue[b-99xr45r5yc]::before { background: var(--rs-info); }
.kpi-card.kpi-blue .kpi-icon[b-99xr45r5yc] { background: var(--rs-info); }

.kpi-card.kpi-green[b-99xr45r5yc]::before { background: var(--rs-success); }
.kpi-card.kpi-green .kpi-icon[b-99xr45r5yc] { background: var(--rs-success); }

.kpi-card.kpi-amber[b-99xr45r5yc]::before { background: var(--rs-warning); }
.kpi-card.kpi-amber .kpi-icon[b-99xr45r5yc] { background: var(--rs-warning); }

/* Naranja del semáforo DAT↔ruta: mismo significado que en Trayectos */
.kpi-card.kpi-orange[b-99xr45r5yc]::before { background: var(--rs-warning); }
.kpi-card.kpi-orange .kpi-icon[b-99xr45r5yc] { background: var(--rs-warning); }

/* Chip "N DATs por validar" en tarjeta y vista compacta */
.dat-pendiente-chip[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    border: 1px solid var(--rs-warning-subtle);
    border-radius: 999px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.15s;
}

.dat-pendiente-chip:hover[b-99xr45r5yc] {
    background: var(--rs-warning-subtle);
    box-shadow: 0 1px 4px rgba(249, 115, 22, 0.35);
}

.dat-pendiente-chip .material-icons-round[b-99xr45r5yc] {
    font-size: 0.85rem;
}

/* ===== Grid de lanzaderas ===== */
.lanzadera-grid[b-99xr45r5yc] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 1rem;
}

@media (max-width: 480px) {
    .lanzadera-grid[b-99xr45r5yc] { grid-template-columns: 1fr; }
}

.lanzadera-card[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid var(--rs-outline-variant);
    border-top: 4px solid var(--rs-outline);
    background: var(--rs-surface);
    cursor: pointer;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
    animation: card-in-b-99xr45r5yc 0.38s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

@keyframes card-in-b-99xr45r5yc {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: none; }
}

.lanzadera-card:hover[b-99xr45r5yc] {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.12);
    border-color: var(--rs-primary-light);
}

.lanzadera-card.card-confirmed[b-99xr45r5yc] { border-top-color: var(--rs-success); }
.lanzadera-card.card-draft[b-99xr45r5yc] { border-top-color: var(--rs-info); }
.lanzadera-card.card-none[b-99xr45r5yc] { border-top-color: var(--rs-outline); }

.card-top[b-99xr45r5yc] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
}

.card-name-block[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    /* Ocupa el ancho libre para que el trayecto pueda alinearse a la derecha. */
    flex: 1 1 auto;
}

.card-name[b-99xr45r5yc] {
    font-weight: 800;
    font-size: 1.02rem;
    color: var(--rs-on-surface);
    line-height: 1.2;
}

.card-company[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.74rem;
    color: var(--rs-on-surface-variant);
}

.card-company .material-icons-round[b-99xr45r5yc] { font-size: 0.9rem; }

/* Traccionadora vigente + su trayecto, en la misma fila. */
.card-meta-row[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.card-meta-row .card-company[b-99xr45r5yc] { min-width: 0; }

.card-company-text[b-99xr45r5yc] {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.card-trayecto[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

/* A la derecha sólo cuando acompaña a la traccionadora; si va solo, queda alineado
   con el resto de líneas del bloque. */
.card-trayecto:not(:first-child)[b-99xr45r5yc] { margin-left: auto; }

.card-trayecto .material-icons-round[b-99xr45r5yc] {
    font-size: 0.9rem;
    color: var(--card-color, var(--rs-primary-text));
    flex: 0 0 auto;
}

.card-trayecto .trayecto-text[b-99xr45r5yc] {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.estado-chip[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
    flex: 0 0 auto;
}

.estado-chip .material-icons-round[b-99xr45r5yc] { font-size: 0.85rem; }

.estado-confirmed[b-99xr45r5yc] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.estado-draft[b-99xr45r5yc] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.estado-none[b-99xr45r5yc] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.estado-inherited[b-99xr45r5yc] { background: var(--rs-violet-subtle); color: var(--rs-on-violet-subtle); }
/* Fija: no tiene semana ni estado de planificación; el chip dice qué es, no cómo va. */
.estado-fija[b-99xr45r5yc] { background: var(--rs-primary-subtle); color: var(--rs-primary-text); }

/* ===== Ruta ===== */
.card-route[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.route-point[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.route-dot[b-99xr45r5yc] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.route-origin[b-99xr45r5yc] { background: var(--rs-success); box-shadow: 0 0 0 3px #dcfce7; }
.route-end[b-99xr45r5yc] { background: var(--rs-info); box-shadow: 0 0 0 3px #dbeafe; }

.route-name[b-99xr45r5yc] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.route-track-line[b-99xr45r5yc] {
    flex: 1;
    height: 3px;
    min-width: 24px;
    background: repeating-linear-gradient(90deg,
        #cbd5e1 0, #cbd5e1 6px,
        transparent 6px, transparent 11px);
    border-radius: 2px;
}

/* ===== Mini tren ===== */
.mini-train[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
    background: linear-gradient(180deg, #0b1626, #16283f);
    border: 1px solid #1e293b;
    overflow: hidden;
    position: relative;
}

/* vía */
.mini-train[b-99xr45r5yc]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 7px;
    height: 2px;
    background: #3d5273;
}

.mini-loco[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 20px;
    border-radius: 5px 3px 3px 3px;
    background: linear-gradient(160deg, #8b3d7c, #631656);
    color: var(--rs-on-primary);
    z-index: 1;
    flex: 0 0 auto;
}

.mini-loco .material-icons-round[b-99xr45r5yc] { font-size: 0.85rem; }

.mini-wagon[b-99xr45r5yc] {
    width: 18px;
    height: 14px;
    border-radius: 3px;
    background: linear-gradient(180deg, #2a6fd4, #16407e);
    border: 1px solid rgba(255, 255, 255, 0.18);
    z-index: 1;
    flex: 0 0 auto;
}

.mini-more[b-99xr45r5yc] {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
    z-index: 1;
    padding-left: 2px;
    font-family: 'IBM Plex Mono', monospace;
}

.mini-empty[b-99xr45r5yc] {
    font-size: 0.74rem;
    color: var(--rs-on-surface-variant);
    z-index: 1;
    font-style: italic;
}

.mini-count[b-99xr45r5yc] {
    margin-left: auto;
    z-index: 1;
    background: rgba(96, 165, 250, 0.15);
    border: 1px solid rgba(96, 165, 250, 0.35);
    color: var(--rs-info);
    font-weight: 800;
    font-size: 0.72rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
    flex: 0 0 auto;
}

/* ===== Footer tarjeta ===== */
.card-footer[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--rs-outline-variant);
    cursor: default;
}

/* Botón de Parque para lanzaderas fijas */
[b-99xr45r5yc] .card-btn-parque.rz-button {
    background: var(--rs-surface-container-high) !important;
    border: 1px solid var(--rs-outline-strong) !important;
    color: var(--rs-on-surface) !important;
    font-weight: 700 !important;
    transition: all 0.15s ease-in-out;
}

[b-99xr45r5yc] .card-btn-parque.rz-button:hover {
    background: var(--rs-primary-subtle) !important;
    border-color: var(--rs-primary-light) !important;
    color: var(--rs-primary-text) !important;
}

[b-99xr45r5yc] .card-btn-parque.rz-button .rzi,
[b-99xr45r5yc] .card-btn-parque.rz-button .material-icons-round {
    color: var(--rs-primary-text) !important;
}

/* ===== Vacío ===== */
.index-empty[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 3.5rem 1.5rem;
    text-align: center;
}

.index-empty > .material-icons-round[b-99xr45r5yc] {
    font-size: 3.4rem;
    color: var(--rs-primary-light);
    opacity: 0.35;
}

.empty-title[b-99xr45r5yc] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.empty-sub[b-99xr45r5yc] {
    font-size: 0.88rem;
    color: var(--rs-on-surface-variant);
    max-width: 420px;
    margin-bottom: 0.5rem;
}

/* ===== Color dot en tarjetas ===== */
.card-color-dot[b-99xr45r5yc] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex: 0 0 auto;
    display: inline-block;
    border: 2px solid var(--rs-surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

/* ===== Resumen de rotaciones en tarjeta ===== */
.card-rotaciones-summary[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.card-rotaciones-summary .material-icons-round[b-99xr45r5yc] {
    font-size: 1rem;
    color: var(--card-color, var(--rs-primary-text));
}

/* ===== Topbar actions ===== */
.index-topbar-actions[b-99xr45r5yc] {
    position: relative; /* ancla del panel de filtros */
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* El boton de Radzen (rz-button-md) mide 36px y rompia la alineacion de la fila. */
.index-topbar-actions[b-99xr45r5yc]  .rz-button {
    height: var(--tb-h, 38px);
}

/* ===== Gantt semanal interactivo ===== */
.gantt-container[b-99xr45r5yc] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    animation: card-in-b-99xr45r5yc 0.38s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.gantt-header[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.7rem 1rem;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
}

.gantt-title[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--rs-primary-text);
}

.gantt-title .material-icons-round[b-99xr45r5yc] {
    font-size: 1.1rem;
}

.gantt-clipboard-badge[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    cursor: pointer;
    transition: background 0.15s;
}

.gantt-clipboard-badge:hover[b-99xr45r5yc] {
    background: var(--rs-info-subtle);
}

/* El contenedor recorta las esquinas redondeadas (overflow:hidden); el scroll horizontal real
   vive aquí dentro, en un envoltorio propio, para no perder ese recorte. Con nombre de lanzadera +
   7 días de columna con contenido rico (ruta, horas, insignias), la tabla es más ancha que
   cualquier móvil: sin esto se recortaba en silencio y no había forma de ver Jue-Dom. */
.gantt-scroll[b-99xr45r5yc] {
    overflow-x: auto;
}

.gantt-table[b-99xr45r5yc] {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.gantt-table thead th[b-99xr45r5yc] {
    padding: 0.55rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: center;
}

.gantt-name-col[b-99xr45r5yc] {
    text-align: left !important;
    min-width: 160px;
    padding-left: 1rem !important;
}

.gantt-table tbody tr[b-99xr45r5yc] {
    border-bottom: 1px solid var(--rs-outline-variant);
    transition: background 0.12s;
}

.gantt-table tbody tr:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
}

.gantt-name-cell[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.6rem 0.5rem 0.6rem 1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.gantt-color-dot[b-99xr45r5yc] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.gantt-cell[b-99xr45r5yc] {
    padding: 0.4rem 0.35rem;
    text-align: center;
    vertical-align: middle;
    color: var(--rs-on-surface-muted);
    min-width: 110px;
    position: relative;
    transition: box-shadow 0.15s, background 0.15s;
}

.gantt-cell.gantt-active[b-99xr45r5yc] {
    color: var(--rs-on-surface);
    cursor: grab;
}

.gantt-cell.gantt-active:active[b-99xr45r5yc] {
    cursor: grabbing;
}

.gantt-cell.gantt-inherited[b-99xr45r5yc] {
    opacity: 0.78;
    border-style: dashed !important;
    border-width: 1px !important;
    cursor: default;
}

.gantt-cell.gantt-inherited.gantt-active[b-99xr45r5yc] {
    cursor: default;
}

.gantt-row-inherited-badge[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    color: var(--rs-on-violet-subtle);
    margin-left: 0.15rem;
}

.gantt-row-inherited-badge .material-icons-round[b-99xr45r5yc] {
    font-size: 0.95rem;
}

.gantt-cell.gantt-drop-zone[b-99xr45r5yc] {
    outline: 2px dashed #93c5fd;
    outline-offset: -2px;
    background: var(--rs-info-subtle) !important;
}

.gantt-cell.gantt-drag-over[b-99xr45r5yc] {
    outline-color: var(--rs-info);
    background: var(--rs-info-subtle) !important;
    box-shadow: inset 0 0 0 2px var(--rs-info);
}

.gantt-cell-empty[b-99xr45r5yc] {
    color: var(--rs-on-surface-disabled);
    font-weight: 700;
}

.gantt-cell-inner[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.gantt-cell-route[b-99xr45r5yc] {
    display: block;
    font-size: 0.73rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 140px;
}

.gantt-cell-hours[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.gantt-cell-hours .material-icons-round[b-99xr45r5yc] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
}

.gantt-cell-badges[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 3px;
    justify-content: center;
    margin-top: 1px;
}

.gantt-cell-count[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    font-weight: 800;
    color: var(--rs-on-primary);
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

.gantt-cell-estado[b-99xr45r5yc] {
    font-size: 0.6rem;
    font-weight: 800;
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.gantt-cell-company[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    font-size: 0.58rem;
    font-weight: 700;
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--rz-base-600) 12%, transparent);
    color: var(--rz-base-700);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gantt-cell-company .material-icons-round[b-99xr45r5yc] {
    font-size: 0.75rem;
}

.gantt-estado-confirmed[b-99xr45r5yc] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.gantt-estado-pending[b-99xr45r5yc] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.gantt-estado-cancelled[b-99xr45r5yc] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

/* Celda con rotación suprimida: atenuada y con la ruta tachada (el badge rojo queda legible). */
.gantt-cell.gantt-suprimida .gantt-cell-inner[b-99xr45r5yc] {
    opacity: 0.6;
    filter: grayscale(0.4);
}

.gantt-cell.gantt-suprimida .gantt-cell-route[b-99xr45r5yc] {
    text-decoration: line-through;
}

/* ── Acciones hover ── */
.gantt-cell-actions[b-99xr45r5yc] {
    display: none;
    position: absolute;
    top: 3px;
    right: 3px;
    gap: 1px;
    z-index: 2;
}

.gantt-cell:hover .gantt-cell-actions[b-99xr45r5yc] {
    display: flex;
}

.gantt-cell-actions button[b-99xr45r5yc] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 5px;
    cursor: pointer;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    box-shadow: 0 1px 3px rgba(0,0,0,0.12);
    transition: background 0.12s, color 0.12s;
}

.gantt-cell-actions button:hover[b-99xr45r5yc] {
    background: var(--rs-surface);
    color: var(--rs-on-surface);
}

/* ── Paste button ── */
.gantt-paste-btn[b-99xr45r5yc] {
    all: unset;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--rs-info);
    cursor: pointer;
    padding: 0.3rem 0.5rem;
    border-radius: 6px;
    transition: background 0.12s;
}

.gantt-paste-btn:hover[b-99xr45r5yc] {
    background: var(--rs-info-subtle);
}

.gantt-paste-btn .material-icons-round[b-99xr45r5yc] {
    font-size: 0.85rem;
}

/* ===== Toggle de vistas ===== */
.view-toggle[b-99xr45r5yc] {
    display: inline-flex;
    height: var(--tb-h, 38px);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    overflow: hidden;
    background: var(--rs-surface);
}

.view-toggle-btn[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 0;
    background: transparent;
    color: var(--rs-on-surface);
    cursor: pointer;
    font-weight: 700;
    font-size: 0.8rem;
    height: 100%;
    padding: 0 0.8rem;
    border-right: 1px solid var(--rs-outline-variant);
    transition: background 0.15s, color 0.15s;
}

.view-toggle-btn:last-child[b-99xr45r5yc] { border-right: 0; }
.view-toggle-btn .material-icons-round[b-99xr45r5yc] { font-size: 1.05rem; }

.view-toggle-btn:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.view-toggle-btn.active[b-99xr45r5yc] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

@media (max-width: 680px) {
    .view-toggle-label[b-99xr45r5yc],
    .filters-toggle-label[b-99xr45r5yc] { display: none; }
}

/* ===== Botón «Filtros» y su panel =====
   Sociedad, terminal, sentido y seguidas detrás de un solo botón de la barra; lo puesto se
   enseña debajo (.filters-active). Mismo alto y mismo lenguaje que .view-toggle. Solo tokens
   de railsider-theme.css, así que el tema oscuro sale solo. */
.filters-toggle[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    height: var(--tb-h, 38px);
    padding: 0 0.7rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.filters-toggle .material-icons-round[b-99xr45r5yc] { font-size: 1.15rem; }

.filters-toggle:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.filters-toggle.active[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary);
}

.filters-badge[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: 0.68rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* Cierra el panel al pinchar fuera sin JS: un velo transparente debajo del panel. */
.filters-backdrop[b-99xr45r5yc] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.filters-panel[b-99xr45r5yc] {
    position: absolute;
    top: calc(100% + 0.45rem);
    right: 0;
    z-index: 41;
    width: min(540px, calc(100vw - 2rem));
    display: grid;
    gap: 0.8rem;
    padding: 0.85rem 1rem 0.8rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-lg);
    text-align: left;
}

.filters-panel-head[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.filters-panel-title[b-99xr45r5yc] { font-weight: 800; font-size: 0.86rem; }

.filters-close[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
}

.filters-close:hover[b-99xr45r5yc] { background: var(--rs-surface-container); color: var(--rs-on-surface); }

.filters-row[b-99xr45r5yc] {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 0.6rem;
    align-items: start;
}

.filters-label[b-99xr45r5yc] {
    padding-top: 0.7rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.terminal-picker[b-99xr45r5yc] { display: grid; gap: 0.4rem; }

.terminal-search[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    height: 36px;
    padding: 0 0.6rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-muted);
}

.terminal-search:focus-within[b-99xr45r5yc] { border-color: var(--rs-primary); }
.terminal-search .material-icons-round[b-99xr45r5yc] { font-size: 1.05rem; }

.terminal-search-input[b-99xr45r5yc] {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    color: var(--rs-on-surface);
    font: inherit;
    font-size: 0.84rem;
    outline: none;
}

.terminal-list[b-99xr45r5yc] {
    display: grid;
    max-height: 224px;
    overflow-y: auto;
    scrollbar-width: thin;
}

.terminal-option[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    height: 32px;
    padding: 0 0.5rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface);
    font-weight: 600;
    font-size: 0.82rem;
    text-align: left;
    cursor: pointer;
}

.terminal-option .material-icons-round[b-99xr45r5yc] { font-size: 1rem; color: var(--rs-on-surface-muted); }
.terminal-option:hover[b-99xr45r5yc] { background: var(--rs-surface-container); }
.terminal-option.selected[b-99xr45r5yc] { background: var(--rs-primary-subtle); color: var(--rs-primary-text); }
.terminal-option.selected .material-icons-round[b-99xr45r5yc],
.terminal-option.selected .terminal-option-count[b-99xr45r5yc] { color: inherit; }

.terminal-option-name[b-99xr45r5yc] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.terminal-option-count[b-99xr45r5yc] {
    font-size: 0.74rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface-variant);
}

.terminal-empty[b-99xr45r5yc] { padding: 0.5rem; font-size: 0.8rem; color: var(--rs-on-surface-muted); }

.filters-panel-foot[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.filters-result[b-99xr45r5yc] {
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface-variant);
}

.filters-clear[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.25rem 0.4rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--rs-primary-text);
    font-weight: 700;
    font-size: 0.78rem;
    cursor: pointer;
}

.filters-clear .material-icons-round[b-99xr45r5yc] { font-size: 0.95rem; }
.filters-clear:hover[b-99xr45r5yc] { background: var(--rs-primary-subtle); }

/* Lo puesto, bajo la barra: un chip relleno por filtro, con su × */
.filters-active[b-99xr45r5yc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-top: -0.35rem;
}

.filters-active-label[b-99xr45r5yc] {
    margin-right: 0.2rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.filter-chip[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    height: 30px;
    padding: 0 0.5rem 0 0.65rem;
    border: 0;
    border-radius: 999px;
    background: var(--rs-primary-gradient);
    color: var(--rs-on-primary);
    font-weight: 700;
    font-size: 0.76rem;
    cursor: pointer;
    box-shadow: var(--rs-shadow-sm);
}

.filter-chip .material-icons-round[b-99xr45r5yc] { font-size: 0.95rem; }
.filter-chip-x[b-99xr45r5yc] { opacity: 0.8; }
.filter-chip:hover .filter-chip-x[b-99xr45r5yc] { opacity: 1; }

.filters-toggle:focus-visible[b-99xr45r5yc],
.filters-close:focus-visible[b-99xr45r5yc],
.terminal-option:focus-visible[b-99xr45r5yc],
.filters-clear:focus-visible[b-99xr45r5yc],
.filter-chip:focus-visible[b-99xr45r5yc],
.sentido-btn:focus-visible[b-99xr45r5yc] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

/* En pantalla estrecha el panel es una hoja inferior con velo: un desplegable anclado a un
   botón que ya no cabe en la fila no tiene dónde abrirse. */
@media (max-width: 900px) {
    .filters-backdrop[b-99xr45r5yc] { background: var(--rs-scrim); }

    .filters-panel[b-99xr45r5yc] {
        position: fixed;
        inset: auto 0 0 0;
        width: auto;
        max-height: 85vh;
        overflow-y: auto;
        border-radius: 16px 16px 0 0;
        padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    }
}

@media (max-width: 480px) {
    .filters-row[b-99xr45r5yc] { grid-template-columns: 1fr; gap: 0.35rem; }
    .filters-label[b-99xr45r5yc] { padding-top: 0; }
}

.sentido-toggle[b-99xr45r5yc] {
    display: inline-flex;
    height: var(--tb-h, 38px);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    overflow: hidden;
    background: var(--rs-surface);
}

.sentido-btn[b-99xr45r5yc] {
    border: 0;
    border-right: 1px solid var(--rs-outline-variant);
    background: transparent;
    color: var(--rs-on-surface);
    cursor: pointer;
    font-weight: 700;
    font-size: 0.78rem;
    height: 100%;
    padding: 0 0.7rem;
    transition: background 0.15s, color 0.15s;
}

.sentido-btn:last-child[b-99xr45r5yc] { border-right: 0; }

.sentido-btn:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.sentido-btn.active[b-99xr45r5yc] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

/* ===== Tarjeta sin servicio (omitida) ===== */
.estado-omitida[b-99xr45r5yc] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.lanzadera-card.card-omitida[b-99xr45r5yc] { opacity: 0.7; background: var(--rs-surface-container-low); }
.lanzadera-card.card-omitida:hover[b-99xr45r5yc] { opacity: 1; }

/* ===== Calendario mensual ===== */
.month-layout[b-99xr45r5yc] {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.month-container[b-99xr45r5yc] {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    animation: card-in-b-99xr45r5yc 0.38s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

/* Panel de detalle (consulta) a la derecha */
.month-detail-panel[b-99xr45r5yc] {
    flex: 0 0 340px;
    width: 340px;
    align-self: flex-start;
    position: sticky;
    top: 1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    padding: 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    max-height: calc(100vh - 2rem);
    overflow: hidden;
    animation: card-in-b-99xr45r5yc 0.38s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.dp-head[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.dp-date[b-99xr45r5yc] {
    font-weight: 800;
    font-size: 0.9rem;
    color: var(--rs-on-surface);
    text-transform: capitalize;
    line-height: 1.3;
}

.dp-totals[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.dp-chip[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    flex: 0 0 auto;
    font-size: 0.68rem;
    font-weight: 800;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
    white-space: nowrap;
}

.dp-chip .material-icons-round[b-99xr45r5yc] { font-size: 0.85rem; }

.dp-chip-vag[b-99xr45r5yc] {
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
}

.dp-list[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    overflow-y: auto;
}

.dp-item[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
}

.dp-item-head[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.dp-dot[b-99xr45r5yc] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.dp-name[b-99xr45r5yc] {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dp-vag[b-99xr45r5yc] {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 0.68rem;
    font-weight: 800;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container);
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.dp-estado[b-99xr45r5yc] {
    flex: 0 0 auto;
    font-size: 0.6rem;
    font-weight: 800;
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.dp-estado-confirmed[b-99xr45r5yc] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.dp-estado-pending[b-99xr45r5yc] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.dp-estado-cancelled[b-99xr45r5yc] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }

.dp-route[b-99xr45r5yc],
.dp-hours[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface);
}

.dp-route .material-icons-round[b-99xr45r5yc],
.dp-hours .material-icons-round[b-99xr45r5yc] {
    font-size: 0.9rem;
    color: var(--rs-on-surface-muted);
}

.dp-hours[b-99xr45r5yc] {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.7rem;
}

.dp-footer[b-99xr45r5yc] {
    margin-top: auto;
    padding-top: 0.6rem;
    border-top: 1px solid var(--rs-outline-variant);
    display: flex;
    justify-content: flex-end;
}

.dp-empty[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex: 1;
    padding: 1.5rem 1rem;
    text-align: center;
    color: var(--rs-on-surface-muted);
    font-size: 0.82rem;
}

.dp-empty .material-icons-round[b-99xr45r5yc] {
    font-size: 2.2rem;
    color: var(--rs-on-surface-disabled);
}

@media (max-width: 1100px) {
    .month-layout[b-99xr45r5yc] { flex-direction: column; }
    .month-detail-panel[b-99xr45r5yc] { flex-basis: auto; width: 100%; max-height: none; }
}

.month-grid[b-99xr45r5yc] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.month-dow[b-99xr45r5yc] {
    text-align: center;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    padding: 0.55rem 0.3rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.month-cell[b-99xr45r5yc] {
    min-height: 84px;
    border-right: 1px solid var(--rs-outline-variant);
    border-bottom: 1px solid var(--rs-outline-variant);
    padding: 0.35rem 0.4rem;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    transition: background 0.12s;
}

.month-cell:nth-child(7n+7)[b-99xr45r5yc] { border-right: 0; }
.month-cell:hover[b-99xr45r5yc] { background: var(--rs-primary-subtle); }
.month-cell.month-out[b-99xr45r5yc] { background: var(--rs-surface); }
.month-cell.month-out .month-cell-date[b-99xr45r5yc] { color: var(--rs-on-surface-disabled); }

.month-cell.month-selected[b-99xr45r5yc] {
    background: var(--rs-primary-subtle) !important;
    box-shadow: inset 0 0 0 2px var(--rs-primary, #631656);
}

.month-cell-date[b-99xr45r5yc] {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.month-cell.month-today .month-cell-date[b-99xr45r5yc] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.month-dots[b-99xr45r5yc] {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    align-items: center;
}

.month-dot[b-99xr45r5yc] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 auto;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}

.month-dot-more[b-99xr45r5yc] {
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
    font-family: 'IBM Plex Mono', monospace;
}

.month-cell-count[b-99xr45r5yc] {
    margin-top: auto;
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
    font-family: 'IBM Plex Mono', monospace;
}

.month-label[b-99xr45r5yc] { text-transform: capitalize; }

/* ===== Accesibilidad: movimiento reducido ===== */
@media (prefers-reduced-motion: reduce) {
    .lanzadera-card[b-99xr45r5yc],
    .skeleton[b-99xr45r5yc] {
        animation: none !important;
    }

    .lanzadera-card[b-99xr45r5yc],
    .week-arrow[b-99xr45r5yc],
    .week-today[b-99xr45r5yc] {
        transition: none !important;
    }
}

/* ===== 2ª ruta del día en el Gantt ===== */
.gantt-cell-route2[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.3rem;
    padding-top: 0.25rem;
    border-top: 1px dashed color-mix(in srgb, var(--cell-color, var(--rs-outline-strong)) 45%, transparent);
    font-size: 0.68rem;
    line-height: 1.1;
}

.gantt-cell-route2-tag[b-99xr45r5yc] {
    flex: 0 0 auto;
    padding: 0.02rem 0.28rem;
    border-radius: 0.35rem;
    background: var(--cell-color, #64748b);
    color: var(--rs-on-primary);
    font-weight: 700;
    font-size: 0.6rem;
    letter-spacing: 0.02em;
}

.gantt-cell-route2-label[b-99xr45r5yc] {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 600;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gantt-cell-route2-count[b-99xr45r5yc] {
    flex: 0 0 auto;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

/* ===== Botón toggle compacto ===== */
.compact-toggle[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--tb-h, 38px);
    height: var(--tb-h, 38px);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.compact-toggle .material-icons-round[b-99xr45r5yc] { font-size: 1.15rem; }

.compact-toggle:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.compact-toggle.active[b-99xr45r5yc] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(99, 22, 86, 0.25);
}

/* ===== Vista compacta ===== */
.compact-list[b-99xr45r5yc] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    background: var(--rs-surface);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

.compact-header[b-99xr45r5yc] {
    display: grid;
    grid-template-columns: minmax(180px, 2fr) minmax(140px, 1.5fr) 120px 90px 80px 104px;
    align-items: center;
    padding: 0.55rem 1rem;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
    gap: 0.5rem;
}

.compact-row[b-99xr45r5yc] {
    display: grid;
    grid-template-columns: minmax(180px, 2fr) minmax(140px, 1.5fr) 120px 90px 80px 104px;
    align-items: center;
    padding: 0.5rem 1rem;
    gap: 0.5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    cursor: pointer;
    transition: background 0.12s;
    animation: compact-in-b-99xr45r5yc 0.25s ease backwards;
}

@keyframes compact-in-b-99xr45r5yc {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: none; }
}

.compact-row:last-child[b-99xr45r5yc] { border-bottom: 0; }

.compact-row:hover[b-99xr45r5yc] {
    background: var(--rs-primary-subtle);
}

.compact-row:hover .compact-action-btn[b-99xr45r5yc] {
    opacity: 1;
}

.compact-row-dimmed[b-99xr45r5yc] {
    opacity: 0.55;
}

.compact-row-dimmed:hover[b-99xr45r5yc] {
    opacity: 0.85;
}

/* ── Nombre ── */
.compact-col-name[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.compact-dot[b-99xr45r5yc] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
    border: 2px solid var(--rs-surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.compact-name-block[b-99xr45r5yc] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.compact-name[b-99xr45r5yc] {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.compact-sub[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.compact-days[b-99xr45r5yc] {
    display: inline-flex;
    gap: 1px;
}

.compact-day[b-99xr45r5yc] {
    width: 16px;
    height: 16px;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.55rem;
    font-weight: 800;
    color: var(--rs-on-surface-disabled);
    background: var(--rs-surface-container);
    line-height: 1;
}

.compact-day-on[b-99xr45r5yc] {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.compact-types[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.compact-type-tag[b-99xr45r5yc] {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container);
    padding: 0.08rem 0.35rem;
    border-radius: 4px;
    white-space: nowrap;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.compact-type-more[b-99xr45r5yc] {
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
}

/* ── Empresa ── */
.compact-col-company[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    flex-wrap: wrap;
}

.compact-company-tag[b-99xr45r5yc] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.compact-loco-tag[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.compact-loco-tag .material-icons-round[b-99xr45r5yc] {
    font-size: 0.8rem;
}

/* ── Estado ── */
.compact-col-status[b-99xr45r5yc] {
    display: flex;
    align-items: center;
}

.compact-badge[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.66rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
}

.compact-badge .material-icons-round[b-99xr45r5yc] { font-size: 0.8rem; }

.compact-badge-ok[b-99xr45r5yc] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.compact-badge-draft[b-99xr45r5yc] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.compact-badge-none[b-99xr45r5yc] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.compact-badge-inherited[b-99xr45r5yc] { background: var(--rs-violet-subtle); color: var(--rs-on-violet-subtle); }
.compact-badge-warn[b-99xr45r5yc] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

/* ── Métricas ── */
.compact-col-rot[b-99xr45r5yc],
.compact-col-vag[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.compact-metric[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.compact-metric .material-icons-round[b-99xr45r5yc] {
    font-size: 0.95rem;
    color: var(--rs-on-surface-muted);
}

.compact-metric-vag .material-icons-round[b-99xr45r5yc] {
    color: var(--rs-primary-text);
}

.compact-metric-btn[b-99xr45r5yc] {
    all: unset;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
    cursor: pointer;
    padding: 0.2rem 0.5rem;
    border-radius: 8px;
    transition: background 0.12s, color 0.12s;
}

.compact-metric-btn:hover:not(:disabled)[b-99xr45r5yc] {
    background: var(--rs-surface-container);
    color: var(--rs-primary-text);
}

.compact-metric-btn:hover:not(:disabled) .material-icons-round[b-99xr45r5yc] {
    color: var(--rs-primary-text);
}

.compact-metric-btn:disabled[b-99xr45r5yc] {
    cursor: default;
    opacity: 0.45;
}

.compact-metric-btn .material-icons-round[b-99xr45r5yc] {
    font-size: 0.95rem;
    color: var(--rs-on-surface-muted);
}

.compact-metric-btn.compact-metric-vag .material-icons-round[b-99xr45r5yc] {
    color: var(--rs-primary-text);
}

/* ── Acciones (aparecen en hover) ── */
.compact-col-actions[b-99xr45r5yc] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    justify-content: flex-end;
}

.compact-action-btn[b-99xr45r5yc] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    cursor: pointer;
    color: var(--rs-on-surface-variant);
    opacity: 0;
    transition: opacity 0.15s, background 0.12s, color 0.12s;
}

.compact-action-btn:hover[b-99xr45r5yc] {
    background: var(--rs-surface-container);
    color: var(--rs-primary-text);
}

.compact-action-btn:disabled[b-99xr45r5yc] {
    cursor: not-allowed;
    opacity: 0 !important;
}

.compact-action-btn .material-icons-round[b-99xr45r5yc] { font-size: 1.1rem; }

.compact-action-danger:hover[b-99xr45r5yc] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .compact-header[b-99xr45r5yc],
    .compact-row[b-99xr45r5yc] {
        grid-template-columns: minmax(120px, 2fr) 100px 80px 60px 84px;
    }
    .compact-col-company[b-99xr45r5yc] { display: none; }
}

@media (max-width: 600px) {
    .compact-header[b-99xr45r5yc],
    .compact-row[b-99xr45r5yc] {
        grid-template-columns: 1fr 80px 60px 56px;
    }
    .compact-col-company[b-99xr45r5yc],
    .compact-col-rot[b-99xr45r5yc] { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .compact-row[b-99xr45r5yc] { animation: none !important; }
}

/* ── Vagones en reserva (requisito 10) ──────────────────────────────────
   Comparten rejilla con las lanzaderas porque se crean en el mismo sitio, pero
   se distinguen a simple vista: no viajan, así que no tienen días, ni semana,
   ni estado de planificación. */
.card-reserva[b-99xr45r5yc] {
    border-style: dashed;
    background: var(--rs-surface-container-low);
}

.estado-reserva[b-99xr45r5yc] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
    border: 1px solid var(--rs-outline-variant);
}

.mini-empty[b-99xr45r5yc] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* ── Vagones en reserva en la vista compacta ─────────────────────────────
   Misma tabla que las lanzaderas, pero las columnas que no les aplican
   (días, estado semanal, rotaciones) van vacías en vez de fingir un cero. */
.compact-row-reserva[b-99xr45r5yc] {
    background: var(--rs-surface-container-low);
}

.compact-badge-reserva[b-99xr45r5yc] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
    border: 1px solid var(--rs-outline-variant);
}

.compact-reserva-sub[b-99xr45r5yc] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

.compact-na[b-99xr45r5yc] {
    color: var(--rs-on-surface-disabled);
}

/* ===== Seguimiento por usuario (estrella) ===== */

/* La estrella de una lanzadera que YA se sigue no se esconde al quitar el ratón: es un estado
   del que el usuario tiene que poder enterarse de un vistazo, no una acción más de la fila. */
.seguir-btn[b-99xr45r5yc] {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    cursor: pointer;
    color: var(--rs-on-surface-muted);
    transition: background 0.12s, color 0.12s, transform 0.12s;
}

.seguir-btn .material-icons-round[b-99xr45r5yc] { font-size: 1.15rem; }

.seguir-btn:hover[b-99xr45r5yc] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    transform: scale(1.08);
}

.seguir-btn.seguir-on[b-99xr45r5yc] {
    color: var(--rs-warning);
    opacity: 1;
}

/* Gana a la regla que oculta los botones de acción de la fila compacta hasta el hover. */
.compact-action-btn.seguir-btn.seguir-on[b-99xr45r5yc] { opacity: 1; }

.seguidas-toggle[b-99xr45r5yc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    height: var(--tb-h, 38px);
    padding: 0 0.75rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.seguidas-toggle .material-icons-round[b-99xr45r5yc] { font-size: 1.15rem; }

.seguidas-count[b-99xr45r5yc] { font-weight: 800; font-size: 0.8rem; }

.seguidas-toggle:hover[b-99xr45r5yc] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    border-color: var(--rs-warning);
}

.seguidas-toggle.active[b-99xr45r5yc] {
    background: var(--rs-warning);
    color: var(--rs-on-primary);
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.28);
}
/* /Pages/Lanzaderas/LanzaderaWagonsIndex.razor.rz.scp.css */
.seg-cards[b-f46glbsjxt] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

/* ::deep: RadzenCard es un componente hijo, no un <div> de este archivo, así que su raíz
   renderizada no lleva el atributo de scope de Blazor y una regla ".seg-card { }" a secas
   nunca la alcanzaría (comprobado: sin ::deep el layout flex de la tarjeta y estas reglas
   quedaban silenciosamente sin aplicar). ".seg-cards" sí es un <div> propio y hace de ancla. */
.seg-cards[b-f46glbsjxt]  .seg-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease, opacity 0.12s ease;
}

.seg-cards[b-f46glbsjxt]  .seg-card:hover {
    transform: translateY(-1px);
    box-shadow: var(--rs-shadow-md);
}

/* Tarjeta activa como filtro de tabla/mapa. */
.seg-cards[b-f46glbsjxt]  .seg-card-selected {
    box-shadow: var(--rs-shadow-md);
}

/* El resto se atenúa mientras hay una tarjeta seleccionada, para que destaque cuál manda ahora mismo. */
.seg-cards[b-f46glbsjxt]  .seg-card-dim {
    opacity: 0.55;
}

.seg-card-top[b-f46glbsjxt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.seg-nombre[b-f46glbsjxt] {
    font-weight: 600;
}

.seg-ruta[b-f46glbsjxt],
.seg-progreso[b-f46glbsjxt],
.seg-vagones[b-f46glbsjxt],
.seg-indeterminado[b-f46glbsjxt] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface);
}

/* Cuando no se puede afirmar si ha llegado se dice, en vez de dar por bueno un "sigue en ruta". */
.seg-indeterminado[b-f46glbsjxt] {
    color: var(--rs-on-warning-subtle);
}

.seg-sin-gps[b-f46glbsjxt] {
    color: var(--rs-on-surface-muted);
}

.seg-map[b-f46glbsjxt] {
    width: 100%;
    height: 380px;
    border-radius: 6px;
    overflow: hidden;
}

.seg-map-vacio[b-f46glbsjxt] {
    margin-top: 0.5rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

.seg-gps[b-f46glbsjxt] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.seg-gps-dot[b-f46glbsjxt] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

/* Pulso del marcador al pulsar una fila de la tabla. Reutiliza la clase/JS de mapbox-helper.js
   (mapboxHelper.highlightMarker); ::deep es necesario porque el marcador lo crea Mapbox por JS y
   no lleva el atributo de scope de este componente. */
.seg-map[b-f46glbsjxt]  .selected-wagon-marker {
    animation: segVagonPulse-b-f46glbsjxt 1s ease-in-out infinite alternate;
    transform: scale(1.15) !important;
    z-index: 2000 !important;
}

@keyframes segVagonPulse-b-f46glbsjxt {
    from {
        box-shadow: 0 0 6px 2px color-mix(in srgb, var(--rs-primary) 40%, transparent);
    }

    to {
        box-shadow: 0 0 14px 4px color-mix(in srgb, var(--rs-primary) 85%, transparent);
    }
}
/* /Pages/Lanzaderas/PasteWagonsDialog.razor.rz.scp.css */
.paste-dialog[b-vx8mbpnlbr] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.paste-grid[b-vx8mbpnlbr] {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 1rem;
}

@media (max-width: 620px) {
    .paste-grid[b-vx8mbpnlbr] { grid-template-columns: 1fr; }
}

/* ===== Entrada ===== */
.paste-input-col[b-vx8mbpnlbr] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.paste-label[b-vx8mbpnlbr] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.paste-label .material-icons-round[b-vx8mbpnlbr] { font-size: 1.05rem; color: var(--rs-primary-text); }

.paste-textarea[b-vx8mbpnlbr] {
    width: 100%;
    min-height: 230px;
    resize: vertical;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--rs-on-surface);
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.paste-textarea:focus[b-vx8mbpnlbr] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 3px var(--rs-primary-lighter, rgba(99, 22, 86, 0.12));
}

.paste-input-hint[b-vx8mbpnlbr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface-variant);
}

.paste-input-hint .material-icons-round[b-vx8mbpnlbr] { font-size: 0.95rem; color: var(--rs-warning); }

/* ===== Subida de fichero ===== */
.paste-upload-row[b-vx8mbpnlbr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.paste-upload-btn[b-vx8mbpnlbr] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    border: 1px solid var(--rs-outline);
    border-radius: 999px;
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    position: relative;
    overflow: hidden;
}

.paste-upload-btn:hover[b-vx8mbpnlbr] {
    background: var(--rs-surface);
    border-color: var(--rs-primary-light);
}

.paste-upload-btn .material-icons-round[b-vx8mbpnlbr] { font-size: 1.05rem; }

/* el input nativo ocupa el botón pero invisible */
.paste-upload-input[b-vx8mbpnlbr] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    font-size: 0;
}

.paste-file-name[b-vx8mbpnlbr] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.76rem;
    color: var(--rs-on-surface);
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.paste-file-name .material-icons-round[b-vx8mbpnlbr] { font-size: 0.95rem; color: var(--rs-success); }

.paste-file-error[b-vx8mbpnlbr] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--rs-on-danger-subtle);
}

.paste-file-error .material-icons-round[b-vx8mbpnlbr] { font-size: 0.95rem; }

/* ===== Pre-borrador ===== */
.paste-preview-col[b-vx8mbpnlbr] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.paste-preview-head[b-vx8mbpnlbr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.paste-preview-title[b-vx8mbpnlbr] {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
}

.paste-analyzing[b-vx8mbpnlbr] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.76rem;
    color: var(--rs-primary-text);
    font-weight: 600;
}

.paste-analyzing .material-icons-round[b-vx8mbpnlbr] { font-size: 1rem; }

.spin[b-vx8mbpnlbr] { animation: paste-spin-b-vx8mbpnlbr 1s linear infinite; }
@keyframes paste-spin-b-vx8mbpnlbr { to { transform: rotate(360deg); } }

.paste-empty[b-vx8mbpnlbr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--rs-on-surface-muted);
    font-size: 0.85rem;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
}

.paste-empty .material-icons-round[b-vx8mbpnlbr] { font-size: 2rem; opacity: 0.5; }

/* ===== Resumen ===== */
.paste-summary[b-vx8mbpnlbr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.psum[b-vx8mbpnlbr] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    font-weight: 800;
    font-size: 0.85rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

.psum span[b-vx8mbpnlbr] { font-family: inherit; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }

.psum-ok[b-vx8mbpnlbr] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.psum-mut[b-vx8mbpnlbr] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.psum-warn[b-vx8mbpnlbr] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.psum-bad[b-vx8mbpnlbr] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.psum-info[b-vx8mbpnlbr] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

/* ===== Lista pre-borrador ===== */
.paste-list[b-vx8mbpnlbr] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    max-height: 560px;
    overflow-y: auto;
    padding-right: 2px;
}

.paste-list[b-vx8mbpnlbr]::-webkit-scrollbar { width: 7px; }
.paste-list[b-vx8mbpnlbr]::-webkit-scrollbar-thumb { background: var(--rs-surface-container-high); border-radius: 4px; }

.paste-row[b-vx8mbpnlbr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--rs-outline-variant);
    border-left: 3px solid var(--rs-outline);
    border-radius: 8px;
    background: var(--rs-surface);
    font-size: 0.82rem;
}

.paste-row.row-ok[b-vx8mbpnlbr] { border-left-color: var(--rs-success); }
.paste-row.row-mut[b-vx8mbpnlbr] { border-left-color: var(--rs-outline); opacity: 0.7; }
.paste-row.row-warn[b-vx8mbpnlbr] { border-left-color: var(--rs-warning); background: var(--rs-warning-subtle); }
.paste-row.row-bad[b-vx8mbpnlbr] { border-left-color: var(--rs-danger); background: var(--rs-danger-subtle); }

.paste-pos[b-vx8mbpnlbr] {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
    font-weight: 800;
    font-size: 0.72rem;
    font-family: 'IBM Plex Mono', monospace;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.paste-role-badge[b-vx8mbpnlbr] {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 6px;
    color: #ecfeff;
}
.paste-role-badge.punta[b-vx8mbpnlbr] { background: #5b21b6; }
.paste-role-badge.topera[b-vx8mbpnlbr] { background: #0e7490; }
.paste-role-badge.single[b-vx8mbpnlbr] { background: #155e75; }

.row-ok .paste-pos[b-vx8mbpnlbr] { background: var(--rs-primary); color: var(--rs-on-primary); }

.paste-raw[b-vx8mbpnlbr] {
    flex: 0 0 auto;
    font-family: 'IBM Plex Mono', monospace;
    color: var(--rs-on-surface-variant);
    min-width: 56px;
}

.paste-arrow[b-vx8mbpnlbr] { color: var(--rs-on-surface-disabled); font-size: 1rem; flex: 0 0 auto; }

.paste-result[b-vx8mbpnlbr] {
    flex: 1;
    min-width: 0;
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    overflow: hidden;
}

.paste-plate[b-vx8mbpnlbr] {
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.paste-tipo[b-vx8mbpnlbr] { font-size: 0.72rem; color: var(--rs-on-surface-variant); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.paste-msg[b-vx8mbpnlbr] { font-size: 0.78rem; }
.paste-msg.bad[b-vx8mbpnlbr] { color: var(--rs-on-danger-subtle); }
.paste-msg.warn[b-vx8mbpnlbr] { color: var(--rs-on-warning-subtle); }

.paste-badges[b-vx8mbpnlbr] {
    flex: 0 0 auto;
    display: inline-flex;
    gap: 0.25rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.pb[b-vx8mbpnlbr] {
    font-size: 0.62rem;
    font-weight: 700;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    white-space: nowrap;
}

.pb-mut[b-vx8mbpnlbr] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }
.pb-warn[b-vx8mbpnlbr] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.pb-bad[b-vx8mbpnlbr] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.pb-info[b-vx8mbpnlbr] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

/* ===== Footer ===== */
.paste-footer[b-vx8mbpnlbr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    border-top: 1px solid var(--rs-outline-variant);
    padding-top: 0.8rem;
}

.paste-replace[b-vx8mbpnlbr] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
    color: var(--rs-on-surface);
    cursor: pointer;
}

.paste-footer-actions[b-vx8mbpnlbr] {
    display: inline-flex;
    gap: 0.5rem;
}
/* /Pages/Lanzaderas/RouteWeatherWidget.razor.rz.scp.css */
/* El botón "Pronóstico del tiempo" usa estilos inline para evitar problemas
   de caché de CSS scoped. Aquí quedan solo los estilos del popover y del contenido
   desplegado. Paleta: morado Railsider (#631656). */

.wx-toggle:hover[b-br1pg4n5m4] {
    background: var(--rs-primary-subtle) !important;
    border-color: var(--rs-primary-light) !important;
}

/* ===== Cuerpo desplegado (popover flotante a la derecha) ===== */
.wx-body[b-br1pg4n5m4] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 40;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.6rem;
    width: max-content;
    max-width: min(560px, 90vw);
    font-size: 0.76rem;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    box-shadow: 0 8px 24px rgba(99, 22, 86, 0.18);
    animation: wx-in-b-br1pg4n5m4 0.15s ease-out;
}

@keyframes wx-in-b-br1pg4n5m4 {
    from { opacity: 0; transform: translateY(-3px); }
    to { opacity: 1; transform: none; }
}

.wx-date[b-br1pg4n5m4] {
    font-weight: 700;
    font-size: 0.72rem;
    color: var(--rs-primary-text);
    text-transform: capitalize;
}

.wx-line[b-br1pg4n5m4] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--rs-on-surface-variant);
}

.wx-line .material-icons-round[b-br1pg4n5m4] { font-size: 1rem; }
.wx-muted[b-br1pg4n5m4] { color: var(--rs-on-surface-muted); }

.spin[b-br1pg4n5m4] { animation: wxspin-b-br1pg4n5m4 1s linear infinite; }
@keyframes wxspin-b-br1pg4n5m4 { to { transform: rotate(360deg); } }

.wx-pt[b-br1pg4n5m4] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}

.wx-emoji[b-br1pg4n5m4] { font-size: 1.05rem; line-height: 1; }

.wx-pt-label[b-br1pg4n5m4] {
    font-weight: 800;
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--rs-on-surface-muted);
}

.wx-pt-name[b-br1pg4n5m4] {
    font-weight: 700;
    color: var(--rs-on-surface);
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wx-pt-temp[b-br1pg4n5m4] {
    font-family: 'IBM Plex Mono', monospace;
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.wx-pt-temp b[b-br1pg4n5m4] { color: var(--rs-on-danger-subtle); }

.wx-pt-x[b-br1pg4n5m4] {
    font-size: 0.72rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
}

.wx-sep[b-br1pg4n5m4] {
    color: var(--rs-primary-light);
    font-size: 1rem;
}
/* /Pages/Lanzaderas/SuprimirRotacionDialog.razor.rz.scp.css */
.sup-rot-dialog[b-565v1nyuro] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.sup-rot-head[b-565v1nyuro] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.sup-rot-color[b-565v1nyuro] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex: 0 0 auto;
    border: 2px solid var(--rs-surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.sup-rot-titles[b-565v1nyuro] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.sup-rot-name[b-565v1nyuro] {
    font-weight: 800;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.sup-rot-route[b-565v1nyuro] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    font-weight: 600;
}

.sup-rot-route .material-icons-round[b-565v1nyuro] { font-size: 0.95rem; }

.sup-rot-intro[b-565v1nyuro] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    font-weight: 600;
}

.sup-rot-option[b-565v1nyuro] {
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    width: 100%;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
}

.sup-rot-option-btn[b-565v1nyuro] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    width: 100%;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.sup-rot-option-btn:hover[b-565v1nyuro] {
    border-color: var(--rs-primary-light);
    background: var(--rs-primary-subtle);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.sup-rot-icon[b-565v1nyuro] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    flex: 0 0 auto;
    color: var(--rs-on-primary);
}

.sup-rot-icon .material-icons-round[b-565v1nyuro] { font-size: 1.25rem; }

.sup-rot-icon-amber[b-565v1nyuro] { background: var(--rs-warning); }
.sup-rot-icon-red[b-565v1nyuro] { background: var(--rs-danger); }

.sup-rot-text[b-565v1nyuro] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.sup-rot-opt-title[b-565v1nyuro] {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--rs-on-surface);
}

.sup-rot-opt-sub[b-565v1nyuro] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    line-height: 1.35;
}

.sup-rot-chips[b-565v1nyuro] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.sup-rot-chip[b-565v1nyuro] {
    all: unset;
    box-sizing: border-box;
    padding: 0.3rem 0.6rem;
    border: 1px solid var(--rs-warning);
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.sup-rot-chip:hover[b-565v1nyuro] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
}

/* El chip "Otro" queda marcado mientras el area de texto esta abierta. */
.sup-rot-chip-on[b-565v1nyuro] {
    background: var(--rs-warning);
    border-color: var(--rs-warning);
    color: var(--rs-on-primary);
}

.sup-rot-motivo[b-565v1nyuro] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.sup-rot-motivo-label[b-565v1nyuro] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    line-height: 1.35;
}

.sup-rot-motivo-input[b-565v1nyuro] {
    box-sizing: border-box;
    width: 100%;
    resize: vertical;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font: inherit;
    font-size: 0.82rem;
    line-height: 1.4;
}

.sup-rot-motivo-input:focus[b-565v1nyuro] {
    outline: none;
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px var(--rs-primary-subtle);
}

.sup-rot-motivo-foot[b-565v1nyuro] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.sup-rot-motivo-count[b-565v1nyuro] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rs-on-surface-muted);
}

.sup-rot-footer[b-565v1nyuro] {
    display: flex;
    justify-content: flex-end;
    padding-top: 0.2rem;
}

/* El borrado cerrado por ser historico: se ve, se explica, no se pulsa. */
.sup-rot-locked[b-565v1nyuro] {
    background: var(--rs-surface-container);
    border-style: dashed;
}

.sup-rot-locked .sup-rot-opt-title[b-565v1nyuro],
.sup-rot-locked .sup-rot-opt-sub[b-565v1nyuro] {
    color: var(--rs-on-surface-variant);
}

.sup-rot-icon-grey[b-565v1nyuro] { background: var(--rs-neutral); }

/* Borrar sobre el historico: solo ADMIN, y el boton no se parece al borrado normal. */
.sup-rot-option-admin[b-565v1nyuro] {
    border-color: var(--rs-danger);
    background: var(--rs-danger-subtle);
}

.sup-rot-option-admin .sup-rot-opt-title[b-565v1nyuro],
.sup-rot-option-admin .sup-rot-opt-sub[b-565v1nyuro] {
    color: var(--rs-on-danger-subtle);
}

.sup-rot-option-btn.sup-rot-option-admin:hover[b-565v1nyuro] {
    border-color: var(--rs-danger);
    background: var(--rs-danger-subtle);
}
/* /Pages/Lanzaderas/TrainCompositionTwin.razor.rz.scp.css */
/* ===== Shell ===== */
.twin-shell[b-hdjwqtr4qg] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    min-width: 0;
}

/* ===== Toolbar ===== */
.twin-toolbar[b-hdjwqtr4qg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.twin-title-block[b-hdjwqtr4qg] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.twin-title[b-hdjwqtr4qg] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--rs-on-surface);
}

.twin-title .material-icons-round[b-hdjwqtr4qg] {
    font-size: 1.2rem;
    color: var(--rs-primary-text);
}

.twin-route[b-hdjwqtr4qg] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    padding-left: 1.65rem;
}

.twin-stats[b-hdjwqtr4qg] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.twin-stat[b-hdjwqtr4qg] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
}

.twin-stat-value[b-hdjwqtr4qg] {
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

.twin-stat-label[b-hdjwqtr4qg] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.twin-stat.stat-danger[b-hdjwqtr4qg] { background: var(--rs-danger-subtle); border-color: var(--rs-danger-subtle); }
.twin-stat.stat-danger .twin-stat-value[b-hdjwqtr4qg] { color: var(--rs-danger); }
.twin-stat.stat-warn[b-hdjwqtr4qg] { background: var(--rs-warning-subtle); border-color: var(--rs-warning-subtle); }
.twin-stat.stat-warn .twin-stat-value[b-hdjwqtr4qg] { color: var(--rs-warning); }
.twin-stat.stat-muted .twin-stat-value[b-hdjwqtr4qg] { color: var(--rs-on-surface-variant); }

/* ===== Toggle 2D/3D ===== */
.twin-view-toggle[b-hdjwqtr4qg] {
    display: inline-flex;
    align-items: center;
    align-self: center;
    flex: 0 0 auto;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline);
    border-radius: 10px;
    padding: 3px;
    gap: 3px;
}

.view-btn[b-hdjwqtr4qg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    border: none;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-weight: 700;
    font-size: 0.8rem;
    line-height: 1;
    white-space: nowrap;
    padding: 0.35rem 0;
    /* Ancho fijo e igual para 2D y 3D: con el texto como referencia salían desiguales. */
    width: 68px;
    box-sizing: border-box;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}

.view-btn .material-icons-round[b-hdjwqtr4qg] { font-size: 1rem; line-height: 1; }

.view-btn:hover[b-hdjwqtr4qg] { color: var(--rs-primary-text); }

.view-btn.active[b-hdjwqtr4qg] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    /* sombra contenida para que el pill no se desborde del track gris */
    box-shadow: 0 1px 2px rgba(99, 22, 86, 0.3);
}

/* ===== Vista 3D ===== */
.twin-3d-wrap[b-hdjwqtr4qg] {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid #1e293b;
    background: #060b16;
    box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.5), 0 8px 24px rgba(2, 8, 20, 0.25);
}

.twin-3d-host[b-hdjwqtr4qg] {
    width: 100%;
    height: 540px;
}

.twin-3d-host[b-hdjwqtr4qg]  canvas,
.twin-3d-host canvas[b-hdjwqtr4qg] {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.twin-3d-hud[b-hdjwqtr4qg] {
    position: absolute;
    left: 12px;
    bottom: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    pointer-events: none;
}

.twin-3d-hud span[b-hdjwqtr4qg] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    color: #9fb3cc;
    background: rgba(8, 14, 26, 0.72);
    border: 1px solid rgba(96, 165, 250, 0.18);
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    backdrop-filter: blur(4px);
    width: fit-content;
}

.twin-3d-hud .material-icons-round[b-hdjwqtr4qg] { font-size: 0.9rem; color: var(--rs-info); }

.twin-3d-empty[b-hdjwqtr4qg] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.95rem;
    pointer-events: none;
}

.twin-3d-empty .material-icons-round[b-hdjwqtr4qg] { font-size: 3rem; opacity: 0.4; }

.twin-3d-controls[b-hdjwqtr4qg] {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.twin-3d-ctrl[b-hdjwqtr4qg] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid rgba(96, 165, 250, 0.25);
    background: rgba(8, 14, 26, 0.72);
    color: #9fb3cc;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: color 0.15s, border-color 0.15s, transform 0.15s;
}

.twin-3d-ctrl:hover[b-hdjwqtr4qg] {
    color: var(--rs-on-primary);
    border-color: rgba(96, 165, 250, 0.6);
    transform: scale(1.06);
}

.twin-3d-ctrl .material-icons-round[b-hdjwqtr4qg] { font-size: 1.15rem; }

/* ===== Modo presentación (pantalla completa) ===== */
.twin-3d-wrap:fullscreen[b-hdjwqtr4qg] {
    border: none;
    border-radius: 0;
}

.twin-3d-wrap:fullscreen .twin-3d-host[b-hdjwqtr4qg] {
    height: 100vh;
}

.twin-3d-wrap:fullscreen .twin-3d-hud span[b-hdjwqtr4qg] {
    font-size: 0.8rem;
}

/* ===== Vista 2D — escena ===== */
.train-scroll-viewport[b-hdjwqtr4qg] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    border-radius: 14px;
    border: 1px solid #1e293b;
    background: #060b16;
    box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.45), 0 8px 24px rgba(2, 8, 20, 0.25);
}

.train-scroll-viewport[b-hdjwqtr4qg]::-webkit-scrollbar { height: 9px; }
.train-scroll-viewport[b-hdjwqtr4qg]::-webkit-scrollbar-track { background: var(--rs-surface-inverse); }
.train-scroll-viewport[b-hdjwqtr4qg]::-webkit-scrollbar-thumb {
    background: #2c3e57;
    border-radius: 5px;
}
.train-scroll-viewport[b-hdjwqtr4qg]::-webkit-scrollbar-thumb:hover { background: #3d5273; }

.train-scene[b-hdjwqtr4qg] {
    position: relative;
    min-width: 100%;
    width: max-content;
    background: linear-gradient(180deg, #04070f 0%, #0b1626 52%, #16283f 78%, #1d3350 100%);
    padding: 1.1rem 1.5rem 1.6rem;
}

.scene-sky[b-hdjwqtr4qg] {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

/* estrellas */
.scene-sky[b-hdjwqtr4qg]::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(1px 1px at 12% 18%, rgba(180, 205, 235, 0.9) 50%, transparent 51%),
        radial-gradient(1px 1px at 28% 32%, rgba(180, 205, 235, 0.7) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 45% 12%, rgba(200, 220, 245, 0.85) 50%, transparent 51%),
        radial-gradient(1px 1px at 61% 26%, rgba(180, 205, 235, 0.75) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 74% 15%, rgba(200, 220, 245, 0.8) 50%, transparent 51%),
        radial-gradient(1px 1px at 88% 30%, rgba(180, 205, 235, 0.7) 50%, transparent 51%),
        radial-gradient(1px 1px at 35% 45%, rgba(160, 190, 225, 0.5) 50%, transparent 51%),
        radial-gradient(1px 1px at 81% 42%, rgba(160, 190, 225, 0.5) 50%, transparent 51%);
    background-size: 620px 320px;
    background-repeat: repeat-x;
}

/* siluetas de naves industriales */
.scene-skyline[b-hdjwqtr4qg] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 52px;
    height: 64px;
    background:
        linear-gradient(transparent 0, transparent 100%),
        repeating-linear-gradient(90deg,
            rgba(13, 22, 38, 0.95) 0px, rgba(13, 22, 38, 0.95) 120px,
            transparent 120px, transparent 150px,
            rgba(10, 18, 32, 0.95) 150px, rgba(10, 18, 32, 0.95) 260px,
            transparent 260px, transparent 300px);
    clip-path: polygon(0 100%, 0 38%, 6% 38%, 6% 18%, 13% 18%, 13% 42%, 22% 42%, 22% 10%, 24% 0%, 26% 10%, 26% 42%, 38% 42%, 38% 24%, 47% 24%, 47% 46%, 58% 46%, 58% 14%, 66% 14%, 66% 40%, 75% 40%, 75% 22%, 84% 22%, 84% 44%, 92% 44%, 92% 30%, 100% 30%, 100% 100%);
}

/* ventanitas iluminadas */
.scene-skyline[b-hdjwqtr4qg]::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(2px 3px at 9% 62%, rgba(96, 150, 210, 0.55) 50%, transparent 60%),
        radial-gradient(2px 3px at 23% 48%, rgba(96, 150, 210, 0.45) 50%, transparent 60%),
        radial-gradient(2px 3px at 41% 66%, rgba(96, 150, 210, 0.5) 50%, transparent 60%),
        radial-gradient(2px 3px at 60% 40%, rgba(96, 150, 210, 0.5) 50%, transparent 60%),
        radial-gradient(2px 3px at 78% 58%, rgba(96, 150, 210, 0.45) 50%, transparent 60%),
        radial-gradient(2px 3px at 94% 64%, rgba(96, 150, 210, 0.5) 50%, transparent 60%);
    background-size: 480px 100%;
    background-repeat: repeat-x;
}

/* ===== Vía ===== */
.train-track[b-hdjwqtr4qg] {
    position: relative;
    display: inline-flex;
    align-items: flex-end;
    flex-wrap: nowrap;
    gap: 0;
    min-width: min-content;
    padding: 2.4rem 1rem 0.2rem;
    z-index: 1;
}

/* carril */
.train-track[b-hdjwqtr4qg]::before {
    content: '';
    position: absolute;
    left: -1.5rem;
    right: -1.5rem;
    bottom: 16px;
    height: 4px;
    background: linear-gradient(180deg, #8b97a8, #5b6675);
    border-radius: 2px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
    z-index: 0;
}

/* traviesas */
.train-track[b-hdjwqtr4qg]::after {
    content: '';
    position: absolute;
    left: -1.5rem;
    right: -1.5rem;
    bottom: 6px;
    height: 12px;
    background: repeating-linear-gradient(90deg,
        transparent 0, transparent 18px,
        #3c3328 18px, #3c3328 24px);
    z-index: -1;
    opacity: 0.85;
}

/* ===== Locomotora 2D ===== */
.loco[b-hdjwqtr4qg] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 14px;
    margin-right: 14px;
    z-index: 2;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.5));
}

.loco-body[b-hdjwqtr4qg] {
    position: relative;
    display: flex;
    align-items: flex-end;
    height: 84px;
}

.loco-cab[b-hdjwqtr4qg] {
    width: 34px;
    height: 84px;
    background: linear-gradient(160deg, #8b3d7c, #631656);
    border-radius: 8px 4px 0 0;
    display: flex;
    justify-content: center;
    padding-top: 10px;
}

.loco-window[b-hdjwqtr4qg] {
    width: 22px;
    height: 16px;
    border-radius: 3px;
    background: linear-gradient(135deg, #bcd8f0, #5d86bd);
    box-shadow: 0 0 8px rgba(140, 190, 240, 0.5);
}

.loco-hood[b-hdjwqtr4qg] {
    width: 92px;
    height: 62px;
    background: linear-gradient(180deg, #7a2d6b 0%, #631656 60%, #4a1040 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    border-top: 2px solid rgba(255, 255, 255, 0.18);
}

.loco-brand[b-hdjwqtr4qg] {
    color: var(--rs-on-primary);
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.loco-nose[b-hdjwqtr4qg] {
    width: 18px;
    height: 50px;
    background: linear-gradient(180deg, #fbbf24, #d97706);
    clip-path: polygon(0 0, 100% 38%, 100% 100%, 0 100%);
    border-radius: 0 4px 2px 0;
}

/* ===== Vagón 2D ===== */
.train-wagon-card[b-hdjwqtr4qg] {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    margin-bottom: 14px;
    margin-right: 10px;
    z-index: 2;
    cursor: pointer;
    user-select: none;
    transition: transform 0.18s cubic-bezier(0.34, 1.4, 0.64, 1), filter 0.18s;
    filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.45));
    animation: wagon-in-b-hdjwqtr4qg 0.4s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    will-change: transform;
}

@keyframes wagon-in-b-hdjwqtr4qg {
    from { opacity: 0; transform: translateX(36px); }
    to { opacity: 1; transform: none; }
}

.train-wagon-card:hover[b-hdjwqtr4qg] {
    transform: translateY(-4px);
}

.train-wagon-card.selected .wagon-body[b-hdjwqtr4qg] {
    border-color: var(--rs-info);
    box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.45), 0 0 22px rgba(96, 165, 250, 0.35);
}

.coupling[b-hdjwqtr4qg] {
    position: absolute;
    left: -12px;
    bottom: 28px;
    width: 14px;
    height: 5px;
    background: #1a212e;
    border-radius: 2px;
    z-index: 0;
}

.wagon-body[b-hdjwqtr4qg] {
    position: relative;
    width: 132px;
    height: 92px;
    background: linear-gradient(180deg, #2a6fd4 0%, #1e4f9c 55%, #16407e 100%);
    border: 2px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px 10px 4px 4px;
    padding: 0.4rem 0.5rem 0.3rem;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow: hidden;
    transition: border-color 0.15s, box-shadow 0.15s;
}

/* nervaduras de lona */
.wagon-body[b-hdjwqtr4qg]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(90deg,
        transparent 0, transparent 18px,
        rgba(255, 255, 255, 0.05) 18px, rgba(255, 255, 255, 0.05) 21px);
    pointer-events: none;
}

.train-wagon-card.state-stop .wagon-body[b-hdjwqtr4qg] {
    background: linear-gradient(180deg, #d98a16 0%, #b8730f 55%, #92560a 100%);
}

.train-wagon-card.state-inactive .wagon-body[b-hdjwqtr4qg] {
    background: linear-gradient(180deg, #555e6b 0%, #434b58 55%, #353c47 100%);
}

.wagon-pos[b-hdjwqtr4qg] {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rs-surface-inverse);
    border: 2px solid var(--rs-info);
    color: var(--rs-on-primary);
    font-size: 0.66rem;
    font-weight: 800;
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    z-index: 3;
    font-family: 'IBM Plex Mono', monospace;
}

.wagon-plate[b-hdjwqtr4qg] {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rs-on-primary);
    font-family: 'IBM Plex Mono', monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 8px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    z-index: 1;
}

.wagon-tipo[b-hdjwqtr4qg] {
    font-size: 0.66rem;
    color: rgba(255, 255, 255, 0.75);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    z-index: 1;
}

.wagon-leds[b-hdjwqtr4qg] {
    display: flex;
    gap: 5px;
    margin-top: auto;
    min-height: 10px;
    z-index: 1;
}

.led[b-hdjwqtr4qg] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 1px solid var(--rs-shade-strong);
}

.led-danger[b-hdjwqtr4qg] { background: #9ca3af; box-shadow: 0 0 6px rgba(156, 163, 175, 0.8); }
.led-warn[b-hdjwqtr4qg] { background: var(--rs-warning); box-shadow: 0 0 6px rgba(251, 191, 36, 0.9); }
.led-issue[b-hdjwqtr4qg] {
    background: var(--rs-danger);
    box-shadow: 0 0 7px rgba(239, 68, 68, 1);
    animation: led-blink-b-hdjwqtr4qg 1.1s ease-in-out infinite;
}

@keyframes led-blink-b-hdjwqtr4qg {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.wagon-drag-handle[b-hdjwqtr4qg] {
    position: absolute;
    top: 3px;
    right: 3px;
    color: rgba(255, 255, 255, 0.55);
    cursor: grab;
    line-height: 1;
    padding: 2px;
    border-radius: 4px;
    z-index: 2;
}

.wagon-drag-handle:hover[b-hdjwqtr4qg] {
    color: var(--rs-on-primary);
    background: rgba(255, 255, 255, 0.15);
}

.wagon-drag-handle .material-icons-round[b-hdjwqtr4qg] { font-size: 1rem; }

.wagon-actions[b-hdjwqtr4qg] {
    position: absolute;
    bottom: 3px;
    right: 3px;
    display: flex;
    gap: 1px;
    z-index: 2;
    opacity: 0;
    transition: opacity 0.15s;
}

.train-wagon-card:hover .wagon-actions[b-hdjwqtr4qg] { opacity: 1; }

.wagon-btn[b-hdjwqtr4qg] {
    border: none;
    background: rgba(8, 14, 26, 0.55);
    color: var(--rs-on-primary);
    width: 22px;
    height: 22px;
    border-radius: 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: background 0.12s;
}

.wagon-btn .material-icons-round[b-hdjwqtr4qg] { font-size: 0.95rem; }

.wagon-btn:hover:not(:disabled)[b-hdjwqtr4qg] { background: rgba(8, 14, 26, 0.85); }
.wagon-btn:disabled[b-hdjwqtr4qg] { opacity: 0.3; cursor: default; }
.wagon-btn-danger:hover:not(:disabled)[b-hdjwqtr4qg] { background: var(--rs-danger); }

/* ruedas */
.wagon-wheels[b-hdjwqtr4qg] {
    display: flex;
    justify-content: space-between;
    padding: 0 12px;
    margin-top: -2px;
}

.wagon-wheels .wheel[b-hdjwqtr4qg] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #3d4756, #11151c 70%);
    border: 2px solid #2c3442;
    margin-right: -6px;
}

.wagon-wheels .wheel-right[b-hdjwqtr4qg] { margin-left: auto; }

/* sortable states */
.train-wagon-card.sortable-chosen[b-hdjwqtr4qg] {
    cursor: grabbing;
    transform: scale(1.05) translateY(-4px);
}

.train-wagon-card.sortable-ghost[b-hdjwqtr4qg] {
    opacity: 0.35;
}

.train-wagon-card.sortable-ghost .wagon-body[b-hdjwqtr4qg] {
    border-style: dashed;
    border-color: var(--rs-info);
}

.train-empty-hint[b-hdjwqtr4qg] {
    color: #7d8aa0;
    font-size: 0.9rem;
    padding: 2.2rem 2rem 2.6rem;
    text-align: center;
    z-index: 1;
    white-space: nowrap;
}

/* ===== Ficha del vagón seleccionado =====
   Dos alturas: arriba la identificación (posición, matrícula, estado) y abajo la fila de
   trabajo (marca y observaciones). En una sola línea el cuadro de texto se quedaba sin
   ancho y el botón de cerrar caía a una segunda fila suelta. */
.wagon-detail-strip[b-hdjwqtr4qg] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #0d1626, #14213a);
    border: 1px solid #24364f;
    box-shadow: 0 6px 18px rgba(4, 10, 22, 0.35);
    /* Fondo fijo oscuro en ambos temas: el texto va con --rs-on-primary, no con
       --rs-on-surface-inverse (que en tema oscuro es casi negro). Igual con los grises
       secundarios, fijos aquí en vez de tomar --rs-on-surface-muted. */
    color: var(--rs-on-primary);
    animation: detail-in-b-hdjwqtr4qg 0.22s ease-out;
}

@keyframes detail-in-b-hdjwqtr4qg {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

.detail-head[b-hdjwqtr4qg] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.detail-pos[b-hdjwqtr4qg] {
    background: var(--rs-info);
    color: var(--rs-on-primary);
    font-weight: 800;
    font-size: 0.8rem;
    padding: 0.3rem 0.55rem;
    border-radius: 8px;
    font-family: 'IBM Plex Mono', monospace;
}

.detail-id[b-hdjwqtr4qg] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.detail-plate[b-hdjwqtr4qg] {
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    color: var(--rs-on-primary);
}

.detail-tipo[b-hdjwqtr4qg] {
    font-size: 0.72rem;
    color: #94a3b8;
}

.detail-badges[b-hdjwqtr4qg] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

/* El botón de cerrar se va al extremo pase lo que pase con los distintivos de estado. */
.detail-head .detail-close[b-hdjwqtr4qg] {
    margin-left: auto;
}

.detail-body[b-hdjwqtr4qg] {
    display: flex;
    align-items: flex-start;
    gap: 1.1rem;
    flex-wrap: wrap;
    padding-top: 0.6rem;
    border-top: 1px solid rgba(148, 163, 184, 0.16);
}

.detail-field[b-hdjwqtr4qg] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.detail-field-label[b-hdjwqtr4qg] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
}

.detail-field-marca[b-hdjwqtr4qg] {
    flex: 0 0 auto;
    padding-right: 1.1rem;
    border-right: 1px solid rgba(148, 163, 184, 0.16);
}

/* Al envolver, la línea divisoria quedaría flotando a media ficha. */
@media (max-width: 720px) {
    .detail-field-marca[b-hdjwqtr4qg] {
        padding-right: 0;
        border-right: none;
    }
}

.detail-field-obs[b-hdjwqtr4qg] {
    flex: 1 1 260px;
}

.detail-obs-input[b-hdjwqtr4qg] {
    width: 100%;
    min-height: 56px;
    resize: vertical;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: rgba(255, 255, 255, 0.05);
    color: var(--rs-on-primary);
    font-family: inherit;
    font-size: 0.82rem;
    line-height: 1.4;
    transition: background 0.12s, border-color 0.12s, box-shadow 0.12s;
}

.detail-obs-input[b-hdjwqtr4qg]::placeholder { color: rgba(148, 163, 184, 0.7); }
.detail-obs-input:hover[b-hdjwqtr4qg] { border-color: rgba(148, 163, 184, 0.5); }

.detail-obs-input:focus[b-hdjwqtr4qg] {
    outline: none;
    background: rgba(255, 255, 255, 0.09);
    border-color: var(--rs-info);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rs-info) 30%, transparent);
}

.detail-obs-text[b-hdjwqtr4qg] {
    margin: 0;
    padding: 0.4rem 0.6rem;
    border-radius: 8px;
    border-left: 3px solid rgba(148, 163, 184, 0.4);
    background: rgba(255, 255, 255, 0.05);
    font-size: 0.82rem;
    line-height: 1.4;
    color: var(--rs-on-primary);
    white-space: pre-wrap;
}

.detail-obs-empty[b-hdjwqtr4qg] {
    color: #94a3b8;
    font-style: italic;
    border-left-color: transparent;
    background: transparent;
    padding-left: 0;
}

.detail-close[b-hdjwqtr4qg] {
    border: none;
    background: rgba(255, 255, 255, 0.08);
    color: #94a3b8;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.detail-close:hover[b-hdjwqtr4qg] { background: rgba(255, 255, 255, 0.16); color: var(--rs-on-primary); }
.detail-close .material-icons-round[b-hdjwqtr4qg] { font-size: 1.1rem; }

/* ===== Marcas de vagón (color libre puesto por el usuario) =====
   Cada clase declara únicamente su token del tema; banda, punto y botones leen --marca-color,
   así el claro/oscuro lo resuelve railsider-theme.css y añadir un color es una línea. */
.marca-rojo[b-hdjwqtr4qg] { --marca-color: var(--rs-danger); }
.marca-naranja[b-hdjwqtr4qg] { --marca-color: var(--rs-warning); }
.marca-verde[b-hdjwqtr4qg] { --marca-color: var(--rs-success); }
.marca-azul[b-hdjwqtr4qg] { --marca-color: var(--rs-info); }
.marca-violeta[b-hdjwqtr4qg] { --marca-color: var(--rs-violet); }
.marca-cian[b-hdjwqtr4qg] { --marca-color: var(--rs-cyan); }

/* Leyenda: una pastilla por marca presente, con su recuento. Filtra al pulsarla. */
.twin-marca-legend[b-hdjwqtr4qg] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.marca-chip[b-hdjwqtr4qg] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font: inherit;
    color: inherit;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}

.marca-chip:hover[b-hdjwqtr4qg] { border-color: var(--marca-color); }

.marca-chip.active[b-hdjwqtr4qg] {
    border-color: var(--marca-color);
    box-shadow: 0 0 0 1px var(--marca-color);
}

.marca-dot[b-hdjwqtr4qg] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--marca-color);
}

.marca-chip-count[b-hdjwqtr4qg] {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    font-family: 'IBM Plex Mono', monospace;
}

/* Contador de observaciones: mismo comportamiento de filtro que las marcas. */
.twin-stat-btn[b-hdjwqtr4qg] {
    cursor: pointer;
    gap: 0.3rem;
    align-items: center;
    font: inherit;
    color: inherit;
}

.twin-stat-btn .material-icons-round[b-hdjwqtr4qg] {
    font-size: 0.95rem;
    color: var(--rs-on-surface-variant);
}

.twin-stat-btn:hover[b-hdjwqtr4qg] { border-color: var(--rs-primary); }

.twin-stat-btn.active[b-hdjwqtr4qg] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 1px var(--rs-primary);
}

.twin-stat-btn.active .material-icons-round[b-hdjwqtr4qg] { color: var(--rs-primary-text); }

/* Vagón atenuado por el filtro: sigue en su sitio, pero deja de competir por la mirada. */
.train-wagon-card.dimmed[b-hdjwqtr4qg] {
    opacity: 0.28;
    filter: grayscale(0.8) drop-shadow(0 5px 8px rgba(0, 0, 0, 0.45));
}

.train-wagon-card.dimmed:hover[b-hdjwqtr4qg] { opacity: 0.65; }

/* Banda pintada en el techo del vagón: se ve de un vistazo a lo largo del tren. */
.wagon-marca-band[b-hdjwqtr4qg] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 8px;
    background: var(--marca-color);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
    z-index: 2;
}

/* Chincheta de observaciones, junto a los pilotos de estado. */
.wagon-note[b-hdjwqtr4qg] {
    font-size: 0.85rem !important;
    color: var(--rs-on-primary);
    line-height: 1;
    margin-left: 2px;
    opacity: 0.9;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
    cursor: help;
}

/* Selector de marca en la ficha del vagón seleccionado (su rótulo es .detail-field-label). */
.detail-marca[b-hdjwqtr4qg] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    /* Alinea los puntos con la primera línea del cuadro de observaciones. */
    min-height: 32px;
}

.marca-pick[b-hdjwqtr4qg] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid transparent;
    background: var(--marca-color);
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.12s, box-shadow 0.12s;
}

.marca-pick:hover[b-hdjwqtr4qg] { transform: scale(1.15); }

.marca-pick.active[b-hdjwqtr4qg] {
    border-color: var(--rs-on-primary);
    box-shadow: 0 0 0 2px var(--marca-color);
}

.marca-pick.marca-none[b-hdjwqtr4qg] {
    background: transparent;
    border: 1px dashed var(--rs-on-surface-muted);
    color: var(--rs-on-surface-muted);
}

.marca-pick.marca-none .material-icons-round[b-hdjwqtr4qg] { font-size: 0.8rem; }

.marca-pick.marca-none.active[b-hdjwqtr4qg] {
    border: 2px solid var(--rs-on-primary);
    box-shadow: none;
    color: var(--rs-on-primary);
}

/* ===== Transición entre modos ===== */
.twin-3d-wrap[b-hdjwqtr4qg],
.train-scroll-viewport[b-hdjwqtr4qg] {
    animation: mode-fade-b-hdjwqtr4qg 0.28s ease-out;
}

@keyframes mode-fade-b-hdjwqtr4qg {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

/* ===== Accesibilidad: movimiento reducido ===== */
@media (prefers-reduced-motion: reduce) {
    .train-wagon-card[b-hdjwqtr4qg],
    .twin-3d-wrap[b-hdjwqtr4qg],
    .train-scroll-viewport[b-hdjwqtr4qg],
    .wagon-detail-strip[b-hdjwqtr4qg] {
        animation: none !important;
    }

    .train-wagon-card[b-hdjwqtr4qg],
    .twin-3d-ctrl[b-hdjwqtr4qg],
    .view-btn[b-hdjwqtr4qg],
    .marca-pick[b-hdjwqtr4qg],
    .marca-chip[b-hdjwqtr4qg],
    .detail-obs-input[b-hdjwqtr4qg] {
        transition: none !important;
    }

    .marca-pick:hover[b-hdjwqtr4qg] { transform: none; }

    .led-issue[b-hdjwqtr4qg] { animation: none !important; }
}
/* /Pages/Lanzaderas/WagonLocationDialog.razor.rz.scp.css */
.wld-container[b-6geusf3qz5] {
    padding: 0.5rem;
    min-width: 320px;
}

@media (max-width: 480px) {
    .wld-container[b-6geusf3qz5] { min-width: 0; }
}

.wld-loading[b-6geusf3qz5], .wld-empty[b-6geusf3qz5] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 1rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.9rem;
}

.wld-empty .material-icons-round[b-6geusf3qz5] {
    font-size: 2rem;
    color: var(--rs-on-surface-disabled);
}

/* Resolved location header */
.wld-resolved[b-6geusf3qz5] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.75rem;
    background: var(--rs-success-subtle);
    border: 1px solid var(--rs-success-subtle);
    border-radius: 0.5rem;
    margin-bottom: 1rem;
}

.wld-resolved-icon[b-6geusf3qz5] {
    font-size: 1.4rem;
    color: var(--rs-success);
    margin-top: 0.1rem;
}

.wld-resolved-text[b-6geusf3qz5] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.wld-resolved-label[b-6geusf3qz5] {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--rs-on-success-subtle);
}

.wld-source-badge[b-6geusf3qz5] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 4px;
    width: fit-content;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.wld-source-geozona[b-6geusf3qz5] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.wld-source-situacion[b-6geusf3qz5] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.wld-source-gps[b-6geusf3qz5] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.wld-source-dat[b-6geusf3qz5] {
    background: var(--rs-cyan-subtle);
    color: var(--rs-on-cyan-subtle);
}

.wld-resolved-date[b-6geusf3qz5] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-variant);
}

.wld-warning[b-6geusf3qz5] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border-radius: 4px;
    padding: 1px 6px;
    width: fit-content;
}

    .wld-warning .material-icons-round[b-6geusf3qz5] {
        font-size: 0.9rem;
    }

.wld-criterion[b-6geusf3qz5] {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
}

/* Una capa por fuente; la marca va en la de fecha más reciente */
.wld-layers[b-6geusf3qz5] {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    overflow: hidden;
    margin-bottom: 1rem;
}

.wld-layer[b-6geusf3qz5] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface-muted);
}

    .wld-layer:last-child[b-6geusf3qz5] {
        border-bottom: none;
    }

    .wld-layer.active[b-6geusf3qz5] {
        background: var(--rs-surface);
        color: var(--rs-on-surface);
    }

.wld-layer-icon[b-6geusf3qz5] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

.wld-layer-content[b-6geusf3qz5] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    flex: 1;
}

.wld-layer-title[b-6geusf3qz5] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wld-layer-value[b-6geusf3qz5] {
    font-size: 0.82rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wld-layer-date[b-6geusf3qz5] {
    font-size: 0.68rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

.wld-layer.active .wld-layer-value[b-6geusf3qz5] {
    font-weight: 600;
}

.wld-active-check[b-6geusf3qz5] {
    font-size: 1rem;
    color: var(--rs-success);
    margin-left: auto;
    flex-shrink: 0;
}

/* GPS detail section */
.wld-gps-detail[b-6geusf3qz5] {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    overflow: hidden;
}

.wld-gps-row[b-6geusf3qz5] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.75rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    font-size: 0.8rem;
}

    .wld-gps-row:last-child[b-6geusf3qz5] {
        border-bottom: none;
    }

    .wld-gps-row .material-icons-round[b-6geusf3qz5] {
        font-size: 0.95rem;
        color: var(--rs-on-surface-muted);
    }

.wld-gps-label[b-6geusf3qz5] {
    color: var(--rs-on-surface-variant);
    min-width: 90px;
}

.wld-gps-value[b-6geusf3qz5] {
    font-weight: 600;
    color: var(--rs-on-surface);
}

.wld-coords[b-6geusf3qz5] {
    font-family: 'Roboto Mono', monospace;
    font-size: 0.75rem;
    user-select: all;
}
/* /Pages/Manual/ManualIndex.razor.rz.scp.css */
/* ═══ Manual de usuario: maqueta de tres columnas (índice · contenido · TOC) ═══ */

.manual-shell[b-zptat6ctxn] {
    display: grid;
    grid-template-columns: 272px minmax(0, 1fr) 216px;
    gap: 2rem;
    align-items: start;
    max-width: 1400px;
    margin: 0 auto;
}

/* ── Índice lateral ─────────────────────────────────────────────────────── */

.manual-nav[b-zptat6ctxn] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 140px);
    display: flex;
    flex-direction: column;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    overflow: hidden;
}

.manual-search[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
}

.manual-search-icon[b-zptat6ctxn] {
    font-size: 19px;
    color: var(--rs-on-surface-muted);
}

.manual-search-input[b-zptat6ctxn] {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
}

.manual-search-input[b-zptat6ctxn]::placeholder { color: var(--rs-on-surface-muted); }

.manual-search-kbd[b-zptat6ctxn] {
    flex-shrink: 0;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 0.68rem;
    line-height: 1;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline);
    border-bottom-width: 2px;
    border-radius: 5px;
    padding: 3px 6px;
}

.manual-search-clear[b-zptat6ctxn] {
    display: flex;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--rs-on-surface-muted);
    padding: 2px;
}
.manual-search-clear:hover[b-zptat6ctxn] { color: var(--rs-on-surface); }
.manual-search-clear .material-icons-round[b-zptat6ctxn] { font-size: 16px; }

.manual-tree[b-zptat6ctxn] {
    flex: 1;
    overflow-y: auto;
    padding: 8px 8px 12px;
}

.manual-tree-home[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 0.83rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    text-decoration: none;
}
.manual-tree-home .material-icons-round[b-zptat6ctxn] { font-size: 17px; color: var(--rs-on-surface-variant); }
.manual-tree-home:hover[b-zptat6ctxn] { background: var(--rs-surface-container); text-decoration: none; }
.manual-tree-home.activo[b-zptat6ctxn] { background: var(--rs-primary-subtle); color: var(--rs-primary-text); }
.manual-tree-home.activo .material-icons-round[b-zptat6ctxn] { color: var(--rs-primary-text); }

.manual-tree-seccion[b-zptat6ctxn] { margin-top: 12px; }

.manual-tree-seccion-titulo[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 4px 10px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
}
.manual-tree-seccion-titulo .material-icons-round[b-zptat6ctxn] { font-size: 15px; }

.manual-tree-doc[b-zptat6ctxn] {
    display: block;
    padding: 6px 10px 6px 32px;
    border-radius: 8px;
    font-size: 0.83rem;
    color: var(--rs-on-surface);
    text-decoration: none;
    line-height: 1.35;
}
.manual-tree-doc:hover[b-zptat6ctxn] { background: var(--rs-surface-container); color: var(--rs-on-surface); text-decoration: none; }
.manual-tree-doc.activo[b-zptat6ctxn] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.manual-reload[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 9px;
    border: none;
    border-top: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 0.75rem;
    cursor: pointer;
}
.manual-reload:hover[b-zptat6ctxn] { color: var(--rs-primary-text); }
.manual-reload .material-icons-round[b-zptat6ctxn] { font-size: 15px; }

/* ── Contenido: todo dentro de una tarjeta, nada "flotando" sobre el fondo ─ */

.manual-main[b-zptat6ctxn] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    padding: 1.6rem 2rem 2rem;
    min-height: 60vh;
}

/* ── Portada ────────────────────────────────────────────────────────────── */

.manual-hero[b-zptat6ctxn] {
    text-align: center;
    padding: 1.5rem 1rem 2rem;
}

.manual-hero-icono[b-zptat6ctxn] {
    font-size: 44px;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    border-radius: 16px;
    padding: 14px;
}

.manual-hero h1[b-zptat6ctxn] {
    margin: 1rem 0 0.5rem;
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.manual-hero p[b-zptat6ctxn] {
    max-width: 620px;
    margin: 0 auto;
    color: var(--rs-on-surface-variant);
    font-size: 0.95rem;
    line-height: 1.6;
}

.manual-cards[b-zptat6ctxn] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    padding-bottom: 2rem;
}

.manual-card[b-zptat6ctxn] {
    display: block;
    padding: 1.1rem 1.2rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    text-decoration: none;
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}
.manual-card:hover[b-zptat6ctxn] {
    text-decoration: none;
    border-color: var(--rs-primary);
    box-shadow: 0 6px 20px rgba(99, 22, 86, 0.10);
    transform: translateY(-2px);
}

.manual-card-icono[b-zptat6ctxn] {
    font-size: 26px;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    border-radius: 10px;
    padding: 8px;
}

.manual-card-titulo[b-zptat6ctxn] {
    margin-top: 0.7rem;
    font-weight: 700;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.manual-card-resumen[b-zptat6ctxn] {
    margin-top: 0.25rem;
    font-size: 0.82rem;
    color: var(--rs-on-surface-variant);
    line-height: 1.45;
}

.manual-card-paginas[b-zptat6ctxn] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 0.75rem;
}

.manual-card-paginas span[b-zptat6ctxn] {
    font-size: 0.7rem;
    color: var(--rs-on-surface);
    background: var(--rs-surface-container);
    border-radius: 999px;
    padding: 2px 9px;
}
.manual-card-paginas span.mas[b-zptat6ctxn] { color: var(--rs-on-surface-muted); background: transparent; }

/* ── Resultados de búsqueda ─────────────────────────────────────────────── */

.manual-resultados-titulo[b-zptat6ctxn] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    margin: 0.5rem 0 1.2rem;
}
.manual-resultados-titulo em[b-zptat6ctxn] { color: var(--rs-primary-text); font-style: normal; }

.manual-resultados-num[b-zptat6ctxn] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container);
    border-radius: 999px;
    padding: 3px 10px;
}

.manual-hit[b-zptat6ctxn] {
    display: block;
    padding: 0.9rem 1.1rem;
    margin-bottom: 0.7rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    text-decoration: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.manual-hit:hover[b-zptat6ctxn] {
    text-decoration: none;
    border-color: var(--rs-primary);
    box-shadow: 0 4px 14px rgba(99, 22, 86, 0.08);
}

.manual-hit-cabecera[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.manual-hit-icono[b-zptat6ctxn] { font-size: 18px; color: var(--rs-primary-text); }

.manual-hit-titulo[b-zptat6ctxn] { font-weight: 700; font-size: 0.92rem; color: var(--rs-on-surface); }

.manual-hit-seccion[b-zptat6ctxn] {
    margin-left: auto;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container);
    border-radius: 999px;
    padding: 2px 9px;
}

.manual-hit-fragmento[b-zptat6ctxn] {
    margin-top: 0.4rem;
    font-size: 0.82rem;
    color: var(--rs-on-surface);
    line-height: 1.5;
}

.manual-hit[b-zptat6ctxn]  mark,
.manual-resultados[b-zptat6ctxn]  mark {
    background: var(--rs-warning-subtle);
    color: inherit;
    border-radius: 3px;
    padding: 0 1px;
}

.manual-vacio[b-zptat6ctxn] {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--rs-on-surface-variant);
}
.manual-vacio .material-icons-round[b-zptat6ctxn] { font-size: 44px; color: var(--rs-on-surface-disabled); }
.manual-vacio p[b-zptat6ctxn] { margin: 0.6rem 0 0; }
.manual-vacio-sub[b-zptat6ctxn] { font-size: 0.82rem; color: var(--rs-on-surface-muted); }

/* ── Página del manual ──────────────────────────────────────────────────── */

/* La tarjeta ya la pone .manual-main: el documento no duplica marco. */
.manual-doc[b-zptat6ctxn] {
    padding: 0;
}

.manual-miga[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 3px;
    flex-wrap: wrap;
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
    margin-bottom: 1rem;
}
.manual-miga a[b-zptat6ctxn] { color: var(--rs-on-surface-variant); text-decoration: none; }
.manual-miga a:hover[b-zptat6ctxn] { color: var(--rs-primary-text); }
.manual-miga .material-icons-round[b-zptat6ctxn] { font-size: 14px; }
.manual-miga .actual[b-zptat6ctxn] { color: var(--rs-on-surface); font-weight: 600; }

.manual-doc-titulo[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}
.manual-doc-titulo .material-icons-round[b-zptat6ctxn] {
    font-size: 24px;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    border-radius: 10px;
    padding: 7px;
}

.manual-doc-resumen[b-zptat6ctxn] {
    margin: 0.6rem 0 0;
    font-size: 0.92rem;
    color: var(--rs-on-surface-variant);
    line-height: 1.55;
}

/* ── Captura de pantalla automática (wwwroot/img/manual/{slug}.png) ─────── */

.manual-captura[b-zptat6ctxn] {
    margin: 1.2rem 0 0;
}

.manual-captura img[b-zptat6ctxn] {
    width: 100%;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.08);
}

.manual-captura figcaption[b-zptat6ctxn] {
    margin-top: 0.4rem;
    text-align: center;
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
}

/* ── Diagramas SVG embebidos en el Markdown ─────────────────────────────── */

.manual-content[b-zptat6ctxn]  .manual-diagrama {
    margin: 1.1rem 0;
    padding: 0.8rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    overflow-x: auto;
}

.manual-content[b-zptat6ctxn]  .manual-diagrama svg {
    display: block;
    width: 100%;
    min-width: 460px;
    height: auto;
}

/* ── Contenido Markdown (HTML inyectado ⇒ ::deep) ───────────────────────── */

.manual-content[b-zptat6ctxn] { margin-top: 1.4rem; }

.manual-content[b-zptat6ctxn]  h2 {
    margin: 2rem 0 0.7rem;
    padding-top: 0.4rem;
    font-size: 1.18rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    border-top: 1px solid var(--rs-outline-variant);
}
.manual-content[b-zptat6ctxn]  h2:first-child { margin-top: 0; border-top: none; padding-top: 0; }

.manual-content[b-zptat6ctxn]  h3 {
    margin: 1.4rem 0 0.5rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.manual-content[b-zptat6ctxn]  p {
    margin: 0.55rem 0;
    font-size: 0.9rem;
    color: var(--rs-on-surface);
    line-height: 1.65;
}

.manual-content[b-zptat6ctxn]  ul,
.manual-content[b-zptat6ctxn]  ol {
    margin: 0.55rem 0;
    padding-left: 1.4rem;
    font-size: 0.9rem;
    color: var(--rs-on-surface);
    line-height: 1.65;
}
.manual-content[b-zptat6ctxn]  li { margin: 0.25rem 0; }
.manual-content[b-zptat6ctxn]  li::marker { color: var(--rs-primary-text); }

.manual-content[b-zptat6ctxn]  a { color: var(--rs-primary-text); font-weight: 500; }

.manual-content[b-zptat6ctxn]  strong { color: var(--rs-on-surface); }

.manual-content[b-zptat6ctxn]  code {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 0.8em;
    background: var(--rs-surface-container);
    border-radius: 5px;
    padding: 1px 6px;
    color: var(--rs-primary-text);
}

.manual-content[b-zptat6ctxn]  kbd {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 0.75em;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline);
    border-bottom-width: 2px;
    border-radius: 5px;
    padding: 1px 6px;
    color: var(--rs-on-surface);
}

/* Callouts: los blockquotes del manual son notas/avisos. */
.manual-content[b-zptat6ctxn]  blockquote {
    margin: 0.9rem 0;
    padding: 0.7rem 1rem;
    border-left: 4px solid var(--rs-primary);
    background: var(--rs-surface);
    border-radius: 0 10px 10px 0;
}
.manual-content[b-zptat6ctxn]  blockquote p { margin: 0.2rem 0; color: var(--rs-on-surface); }

.manual-content[b-zptat6ctxn]  table {
    width: 100%;
    margin: 0.9rem 0;
    border-collapse: collapse;
    font-size: 0.84rem;
    display: block;
    overflow-x: auto;
}
.manual-content[b-zptat6ctxn]  th {
    text-align: left;
    padding: 8px 12px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    border-bottom: 2px solid var(--rs-outline-variant);
    white-space: nowrap;
}
.manual-content[b-zptat6ctxn]  td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface);
    vertical-align: top;
}

.manual-content[b-zptat6ctxn]  img {
    max-width: 100%;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.07);
    margin: 0.6rem 0;
}

.manual-content[b-zptat6ctxn]  hr {
    border: none;
    border-top: 1px solid var(--rs-outline-variant);
    margin: 1.5rem 0;
}

/* ── Anterior / siguiente ───────────────────────────────────────────────── */

.manual-vecinos[b-zptat6ctxn] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2.2rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.manual-vecino[b-zptat6ctxn] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0.7rem 1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    text-decoration: none;
    max-width: 48%;
    transition: border-color 0.15s;
}
.manual-vecino:hover[b-zptat6ctxn] { border-color: var(--rs-primary); text-decoration: none; }
.manual-vecino.siguiente[b-zptat6ctxn] { margin-left: auto; text-align: right; }
.manual-vecino .material-icons-round[b-zptat6ctxn] { color: var(--rs-primary-text); font-size: 20px; }

.manual-vecino-eti[b-zptat6ctxn] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
}

.manual-vecino-titulo[b-zptat6ctxn] { font-size: 0.86rem; font-weight: 600; color: var(--rs-on-surface); }

/* ── "En esta página" ───────────────────────────────────────────────────── */

.manual-toc[b-zptat6ctxn] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
    padding: 0.8rem 0.4rem;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
}

.manual-toc-titulo[b-zptat6ctxn] {
    padding: 4px 14px 8px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
}

.manual-toc-item[b-zptat6ctxn] {
    display: block;
    width: 100%;
    text-align: left;
    padding: 5px 14px;
    border: none;
    background: transparent;
    font-family: inherit;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
    line-height: 1.4;
    border-left: 2px solid transparent;
    margin-left: -1px;
}
.manual-toc-item:hover[b-zptat6ctxn] { color: var(--rs-primary-text); border-left-color: var(--rs-primary); }
.manual-toc-item.nivel-3[b-zptat6ctxn] { padding-left: 26px; font-size: 0.74rem; }

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 1200px) {
    .manual-shell[b-zptat6ctxn] { grid-template-columns: 250px minmax(0, 1fr); }
    .manual-toc[b-zptat6ctxn] { display: none; }
}

@media (max-width: 820px) {
    .manual-shell[b-zptat6ctxn] { grid-template-columns: 1fr; }
    .manual-nav[b-zptat6ctxn] { position: static; max-height: 320px; }
    .manual-main[b-zptat6ctxn] { padding: 1.2rem 1.2rem 1.5rem; }
}
/* /Pages/Maps/WagonMapShowDialog.razor.rz.scp.css */
/* Lenguaje visual de marca (estilo "¿Dónde está mi vagón?") aplicado al modal de situación. */
.rs-wagon-modal[b-1k3r5gw6g6] {
    --rs-primary: #420134;
    min-height: 0;
}

/* Barra de acciones del llamante, sobre las pestañas. Solo existe si se pasa el fragmento
   Acciones: sin él este bloque no se renderiza y el modal queda como estaba. */
.rs-wagon-acciones[b-1k3r5gw6g6] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-bottom: 0.6rem;
    margin-bottom: 0.2rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

/* Pestaña activa en color de marca (cosmético; si Radzen cambia clases, no rompe nada). */
.rs-wagon-modal[b-1k3r5gw6g6]  .rz-tabview-nav li.rz-state-active a,
.rs-wagon-modal[b-1k3r5gw6g6]  .rz-tabview-nav li.rz-tabview-selected a,
.rs-wagon-modal[b-1k3r5gw6g6]  .rz-tabview-nav li.rz-state-active .rz-tabview-title {
    color: var(--rs-primary-text);
    font-weight: 700;
}

.rs-wagon-modal[b-1k3r5gw6g6]  .rz-tabview-nav li.rz-state-active,
.rs-wagon-modal[b-1k3r5gw6g6]  .rz-tabview-nav li.rz-tabview-selected {
    border-bottom: 2px solid var(--rs-primary);
}

/* La tarjeta del modal sin sombra extra (el diálogo ya aporta el contenedor). */
.rs-wagon-modal[b-1k3r5gw6g6]  .rz-card {
    box-shadow: none;
    border: none;
}

/* Modo oscuro: en lugar de repetir la paleta, se hereda la de :root
   (railsider-theme.css), que ya resuelve claro y oscuro. */
:root[data-theme="dark"] .rs-wagon-modal[b-1k3r5gw6g6] {
    --rs-primary: inherit;
}
/* /Pages/Novedades/ReleaseNotes.razor.rz.scp.css */
/* Novedades: historial de versiones para todo el mundo.
   Todos los colores salen de los tokens de railsider-theme.css; aquí no hay ni un literal. */

.rn-shell[b-g3levohkyf] {
    max-width: 860px;
    margin: 0 auto;
    padding: 8px 0 48px;
}

/* ── Cabecera ──────────────────────────────────────────────────────────────── */

.rn-intro[b-g3levohkyf] {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-start;
    justify-content: space-between;
    padding: 20px 24px;
    margin-bottom: 28px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
}

.rn-intro-texto[b-g3levohkyf] {
    flex: 1 1 380px;
}

.rn-intro h1[b-g3levohkyf] {
    margin: 0 0 6px;
    font-size: 1.35rem;
    font-weight: 650;
    color: var(--rs-on-surface);
}

.rn-intro p[b-g3levohkyf] {
    margin: 0;
    max-width: 60ch;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--rs-on-surface-variant);
}

.rn-intro-version[b-g3levohkyf] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 16px;
    background: var(--rs-primary-subtle);
    border-radius: 10px;
    text-align: right;
}

.rn-intro-version-label[b-g3levohkyf] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--rs-primary-text);
    opacity: .8;
}

.rn-intro-version-numero[b-g3levohkyf] {
    font-size: 1.05rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--rs-primary-text);
}

/* ── Línea de tiempo ───────────────────────────────────────────────────────── */

.rn-timeline[b-g3levohkyf] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rn-item[b-g3levohkyf] {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 16px;
}

/* El hilo vertical se dibuja en la columna de la marca y se corta en el último elemento,
   para que no sobresalga por debajo de la última versión. */
.rn-item-marca[b-g3levohkyf] {
    position: relative;
    display: flex;
    justify-content: center;
}

.rn-item-marca[b-g3levohkyf]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--rs-outline-variant);
}

.rn-item:last-child .rn-item-marca[b-g3levohkyf]::before {
    bottom: auto;
    height: 22px;
}

.rn-item-punto[b-g3levohkyf] {
    position: relative;
    width: 11px;
    height: 11px;
    margin-top: 17px;
    border-radius: 50%;
    background: var(--rs-primary);
    box-shadow: 0 0 0 4px var(--rs-bg);
}

.rn-item:not(:first-child) .rn-item-punto[b-g3levohkyf] {
    background: var(--rs-outline-strong);
}

/* ── Tarjeta de versión ────────────────────────────────────────────────────── */

.rn-card[b-g3levohkyf] {
    margin-bottom: 20px;
    padding: 18px 22px 6px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 14px;
    box-shadow: var(--rs-shadow-sm);
}

.rn-card-head[b-g3levohkyf] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.rn-card-titulo[b-g3levohkyf] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.rn-card-titulo h2[b-g3levohkyf] {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface);
}

.rn-card-head time[b-g3levohkyf] {
    font-size: .8rem;
    color: var(--rs-on-surface-muted);
}

.rn-chip[b-g3levohkyf] {
    padding: 2px 9px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.rn-chip--actual[b-g3levohkyf] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.rn-chip--ruptura[b-g3levohkyf] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.rn-card-interno[b-g3levohkyf] {
    margin: 14px 0 16px;
    font-size: .85rem;
    line-height: 1.5;
    color: var(--rs-on-surface-muted);
}

/* ── Grupos de cambios ─────────────────────────────────────────────────────── */

.rn-grupo[b-g3levohkyf] {
    padding: 14px 0;
}

.rn-grupo + .rn-grupo[b-g3levohkyf] {
    border-top: 1px dashed var(--rs-outline-variant);
}

.rn-grupo h3[b-g3levohkyf] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 8px;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.rn-grupo h3 .material-icons-round[b-g3levohkyf] {
    font-size: 1.05rem;
}

.rn-grupo--success h3[b-g3levohkyf] { color: var(--rs-success); }
.rn-grupo--info h3[b-g3levohkyf]    { color: var(--rs-info); }
.rn-grupo--warning h3[b-g3levohkyf] { color: var(--rs-warning); }
.rn-grupo--danger h3[b-g3levohkyf]  { color: var(--rs-danger); }
.rn-grupo--neutral h3[b-g3levohkyf] { color: var(--rs-on-surface-muted); }

.rn-grupo ul[b-g3levohkyf] {
    margin: 0;
    padding-left: 26px;
}

.rn-grupo li[b-g3levohkyf] {
    margin-bottom: 5px;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--rs-on-surface);
}

.rn-grupo li[b-g3levohkyf]::marker {
    color: var(--rs-outline-strong);
}

.rn-ambito[b-g3levohkyf] {
    display: inline-block;
    margin-right: 6px;
    padding: 1px 7px;
    border-radius: 5px;
    background: var(--rs-surface-container-high);
    font-size: .72rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
}

/* ── Estados vacíos y carga ────────────────────────────────────────────────── */

.rn-vacio[b-g3levohkyf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 56px 24px;
    text-align: center;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline);
    border-radius: 14px;
    color: var(--rs-on-surface-muted);
}

.rn-vacio .material-icons-round[b-g3levohkyf] {
    font-size: 2.4rem;
    opacity: .55;
}

.rn-vacio p[b-g3levohkyf] {
    margin: 0;
    max-width: 46ch;
    font-size: .875rem;
    line-height: 1.55;
}

.rn-skeleton[b-g3levohkyf] {
    height: 148px;
    margin-bottom: 20px;
    border-radius: 14px;
    background: var(--rs-surface-container);
    animation: rn-pulse-b-g3levohkyf 1.4s ease-in-out infinite;
}

@keyframes rn-pulse-b-g3levohkyf {
    0%, 100% { opacity: 1; }
    50%      { opacity: .55; }
}

@media (max-width: 640px) {
    .rn-intro[b-g3levohkyf] {
        padding: 16px;
    }

    .rn-intro-version[b-g3levohkyf] {
        text-align: left;
    }

    .rn-item[b-g3levohkyf] {
        grid-template-columns: 16px 1fr;
        gap: 12px;
    }

    .rn-card[b-g3levohkyf] {
        padding: 16px 16px 4px;
    }
}
/* /Pages/Reporting/AlertDialog.razor.rz.scp.css */
.ad[b-kvyl5h11fs] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

/* La frase entera arriba: leerla es la forma más rápida de ver que la condición está al revés. */
.ad-frase[b-kvyl5h11fs] {
    padding: .55rem .7rem;
    border-radius: 8px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: .84rem;
}

.ad-campo[b-kvyl5h11fs] { width: 100%; }

.ad-externos[b-kvyl5h11fs] { margin-top: .4rem; }

.ad-fila[b-kvyl5h11fs] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.ad-medio[b-kvyl5h11fs] { flex: 1 1 160px; }

.ad-seccion[b-kvyl5h11fs] {
    padding-top: .4rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.ad-titulo[b-kvyl5h11fs] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.ad-nota[b-kvyl5h11fs] {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin-top: .4rem;
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
}

.ad-check[b-kvyl5h11fs] {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
}

.ad-acciones[b-kvyl5h11fs] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/AlertsIndex.razor.rz.scp.css */
.ai-page[b-p2i9jp8qnf] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.ai-lista[b-p2i9jp8qnf] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.ai-card[b-p2i9jp8qnf] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: .7rem .85rem;
    box-shadow: var(--rs-shadow-sm);
}

.ai-card--pausada[b-p2i9jp8qnf] { opacity: .65; }

.ai-card-head[b-p2i9jp8qnf] {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.ai-nombre[b-p2i9jp8qnf] {
    font-weight: 600;
    color: var(--rs-on-surface);
    flex: 1 1 auto;
}

.ai-pausada[b-p2i9jp8qnf] {
    font-size: .66rem;
    padding: .05rem .4rem;
    border-radius: 999px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.ai-acciones[b-p2i9jp8qnf] {
    display: flex;
    gap: .2rem;
}

.ai-condicion[b-p2i9jp8qnf] {
    font-size: .84rem;
    color: var(--rs-on-surface-variant);
    margin-top: .2rem;
}

.ai-meta[b-p2i9jp8qnf] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
    margin-top: .15rem;
}

.ai-ultimo[b-p2i9jp8qnf] { color: var(--rs-primary-text); }

.ai-disparos[b-p2i9jp8qnf] {
    margin-top: .5rem;
    padding-top: .4rem;
    border-top: 1px solid var(--rs-outline-variant);
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.ai-disparo[b-p2i9jp8qnf] {
    display: flex;
    gap: .5rem;
    align-items: baseline;
    font-size: .76rem;
}

.ai-disparo-fecha[b-p2i9jp8qnf] {
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
}

.ai-disparo-mensaje[b-p2i9jp8qnf] { flex: 1 1 auto; }

.ai-disparo-avisos[b-p2i9jp8qnf] {
    color: var(--rs-on-surface-muted);
    font-size: .7rem;
}

.ai-sin-disparos[b-p2i9jp8qnf] {
    font-size: .76rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.ai-vacio[b-p2i9jp8qnf] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 2rem;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
}

.ai-vacio p[b-p2i9jp8qnf] {
    margin: .3rem 0 0;
    font-size: .85rem;
}

.ai-skeleton[b-p2i9jp8qnf] {
    height: 40vh;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: ai-latido-b-p2i9jp8qnf 1.4s ease-in-out infinite;
}

@keyframes ai-latido-b-p2i9jp8qnf {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}
/* /Pages/Reporting/BiGovernance.razor.rz.scp.css */
.bg-page[b-o19ue5n0sc] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.bg-seccion[b-o19ue5n0sc] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: .8rem;
}

.bg-seccion-titulo[b-o19ue5n0sc] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .5rem;
}

.bg-tabla-wrap[b-o19ue5n0sc] { overflow-x: auto; }

.bg-tabla[b-o19ue5n0sc] {
    width: 100%;
    border-collapse: collapse;
    font-size: .82rem;
}

.bg-tabla th[b-o19ue5n0sc],
.bg-tabla td[b-o19ue5n0sc] {
    padding: .4rem .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: left;
    vertical-align: middle;
}

.bg-tabla thead th[b-o19ue5n0sc] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container);
}

.bg-sub[b-o19ue5n0sc] {
    font-size: .7rem;
    color: var(--rs-on-surface-muted);
}

/* Lo que depende de un informe se ve antes de tocarlo: es el aviso, no una estadística. */
.bg-impacto[b-o19ue5n0sc] {
    font-size: .72rem;
    padding: .1rem .45rem;
    border-radius: 999px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    cursor: help;
}

.bg-nota[b-o19ue5n0sc] {
    font-size: .78rem;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border-radius: 8px;
    padding: .5rem .6rem;
    margin-bottom: .6rem;
}

.bg-acciones[b-o19ue5n0sc] {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    margin-bottom: .5rem;
}

.bg-importar[b-o19ue5n0sc] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.bg-area[b-o19ue5n0sc] {
    width: 100%;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .74rem;
}

.bg-ensayo[b-o19ue5n0sc] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    padding: .5rem;
    background: var(--rs-surface-container-low);
}

.bg-ensayo-linea[b-o19ue5n0sc] {
    display: flex;
    gap: .5rem;
    align-items: baseline;
    font-size: .78rem;
}

.bg-accion[b-o19ue5n0sc] {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: .05rem .4rem;
    border-radius: 999px;
    white-space: nowrap;
}

.bg-accion--create[b-o19ue5n0sc] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.bg-accion--update[b-o19ue5n0sc] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.bg-accion--skip[b-o19ue5n0sc] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.bg-ensayo-nombre[b-o19ue5n0sc] { flex: 1 1 auto; }

.bg-ensayo-aviso[b-o19ue5n0sc] {
    font-size: .72rem;
    color: var(--rs-on-warning-subtle);
}

.bg-skeleton[b-o19ue5n0sc] {
    height: 40vh;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: bg-latido-b-o19ue5n0sc 1.4s ease-in-out infinite;
}

@keyframes bg-latido-b-o19ue5n0sc {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}
/* /Pages/Reporting/BiIndex.razor.rz.scp.css */
/* Catálogo de informes. Tarjetas en rejilla: el catálogo se ojea, no se lee fila a fila. */

.bi-page[b-9kkgh3elg0] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.bi-head[b-9kkgh3elg0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

/* Accesos a distribución y gobierno, antes retirados del sidebar. */
.bi-hub[b-9kkgh3elg0] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.bi-hub-label[b-9kkgh3elg0],
.bi-catalogo-label[b-9kkgh3elg0] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

.bi-hub-grid[b-9kkgh3elg0] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: .65rem;
}

.bi-hub-card[b-9kkgh3elg0] {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .85rem 1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, background .15s;
    font-family: inherit;
    color: inherit;
}

.bi-hub-card:hover[b-9kkgh3elg0] {
    border-color: var(--rs-primary);
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-sm);
}

.bi-hub-card--admin[b-9kkgh3elg0] {
    border-style: dashed;
}

.bi-hub-icon[b-9kkgh3elg0] {
    flex: none;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-size: 1.15rem;
}

.bi-hub-body[b-9kkgh3elg0] {
    flex: 1;
    min-width: 0;
}

.bi-hub-title[b-9kkgh3elg0] {
    font-weight: 600;
    font-size: .88rem;
    color: var(--rs-on-surface);
    margin-bottom: .2rem;
}

.bi-hub-desc[b-9kkgh3elg0] {
    font-size: .78rem;
    line-height: 1.4;
    color: var(--rs-on-surface-variant);
}

.bi-hub-arrow[b-9kkgh3elg0] {
    flex: none;
    color: var(--rs-on-surface-muted);
    font-size: 1.1rem;
    margin-top: .15rem;
    transition: transform .15s, color .15s;
}

.bi-hub-card:hover .bi-hub-arrow[b-9kkgh3elg0] {
    color: var(--rs-primary-text);
    transform: translateX(2px);
}

.bi-catalogo-label[b-9kkgh3elg0] {
    margin-top: .25rem;
}

.bi-filtros[b-9kkgh3elg0] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.bi-buscador[b-9kkgh3elg0] {
    max-width: 280px;
}

.bi-check-label[b-9kkgh3elg0] {
    font-size: .82rem;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
}

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

.bi-card[b-9kkgh3elg0] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: .9rem 1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-sm);
}

/* El borrador se distingue de un vistazo: es lo que aún no puede abrir nadie más. */
.bi-card--borrador[b-9kkgh3elg0] {
    border-style: dashed;
}

.bi-card-head[b-9kkgh3elg0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
}

.bi-card-titulo[b-9kkgh3elg0] {
    font-weight: 600;
    color: var(--rs-on-surface);
    display: flex;
    align-items: center;
    gap: .3rem;
}

.bi-certificado[b-9kkgh3elg0] {
    color: var(--rs-success);
    font-size: 1rem;
}

.bi-estado[b-9kkgh3elg0] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: .1rem .45rem;
    border-radius: 999px;
    white-space: nowrap;
}

.bi-estado--published[b-9kkgh3elg0] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.bi-estado--draft[b-9kkgh3elg0] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.bi-estado--archived[b-9kkgh3elg0] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.bi-card-desc[b-9kkgh3elg0] {
    font-size: .82rem;
    color: var(--rs-on-surface-variant);
    min-height: 2.2em;
}

.bi-card-meta[b-9kkgh3elg0] {
    font-size: .74rem;
    color: var(--rs-on-surface-muted);
}

.bi-card-acciones[b-9kkgh3elg0] {
    display: flex;
    gap: .3rem;
    flex-wrap: wrap;
    margin-top: .2rem;
}

.bi-vacio[b-9kkgh3elg0] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 2rem;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
}

.bi-vacio p[b-9kkgh3elg0] {
    margin: .3rem 0 0;
    font-size: .85rem;
}

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

.bi-skeleton-card[b-9kkgh3elg0] {
    height: 140px;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: bi-latido-b-9kkgh3elg0 1.4s ease-in-out infinite;
}

@keyframes bi-latido-b-9kkgh3elg0 {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}

/* Pestañas del catálogo: informes y paneles son dos cosas distintas y conviene no mezclarlas en
   la misma rejilla. */
.bi-pestanas[b-9kkgh3elg0] {
    display: flex;
    gap: .3rem;
}

.bi-pestana[b-9kkgh3elg0] {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .8rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: .82rem;
    cursor: pointer;
}

.bi-pestana--activa[b-9kkgh3elg0] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.bi-contador[b-9kkgh3elg0] {
    font-size: .7rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/DashboardFilterBar.razor.rz.scp.css */
.dfb[b-6p2upl1378] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    padding: .45rem .6rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface-container-low);
}

.dfb-filtro[b-6p2upl1378] {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.dfb-etiqueta[b-6p2upl1378] {
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
}

.dfb-control[b-6p2upl1378] {
    min-width: 160px;
    font-size: .78rem;
}

.dfb-fijo[b-6p2upl1378] {
    font-size: .74rem;
    font-weight: 500;
    color: var(--rs-on-surface);
    padding: .1rem .4rem;
    border-radius: 999px;
    background: var(--rs-surface-container-high);
}

.dfb-fecha[b-6p2upl1378] { width: 140px; }

.dfb-guion[b-6p2upl1378] {
    color: var(--rs-on-surface-muted);
    padding: 0 .1rem;
}
/* /Pages/Reporting/Components/DashboardTile.razor.rz.scp.css */
/* Baldosa de un panel: cabecera fina y el informe debajo, sin decoración que compita con los
   datos. */

.dt[b-dt8yu1rpt0] {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-sm);
    padding: .6rem .7rem;
    min-width: 0;
}

.dt-cabecera[b-dt8yu1rpt0] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .4rem;
}

.dt-titulo[b-dt8yu1rpt0] {
    font-size: .82rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
}

.dt-nota[b-dt8yu1rpt0] {
    font-size: .66rem;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
}

.dt-enlace[b-dt8yu1rpt0] {
    font-family: 'Material Icons Round';
    font-size: 1rem;
    border: none;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    line-height: 1;
}

.dt-enlace:hover[b-dt8yu1rpt0] { color: var(--rs-primary-text); }

.dt-cuerpo[b-dt8yu1rpt0] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.dt-error[b-dt8yu1rpt0] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 1rem;
    text-align: center;
    font-size: .78rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 8px;
}
/* /Pages/Reporting/Components/ReportCards.razor.rz.scp.css */
.rcd-grid[b-vu8zan6stx] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: .6rem;
}

.rcd-card[b-vu8zan6stx] {
    padding: .7rem .8rem;
    border: 1px solid var(--rs-outline-variant);
    border-top: 3px solid var(--rs-primary);
    border-radius: 10px;
    background: var(--rs-surface);
}

.rcd-valor[b-vu8zan6stx] {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.rcd-etiqueta[b-vu8zan6stx] {
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rcd-vacio[b-vu8zan6stx] {
    padding: 1.2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

/* Una tarjeta que filtra el panel tiene que parecer pulsable ANTES de pulsarla: si el único
   indicio es que el panel cambia, el primer clic siempre es un accidente. */
.rcd-card--pulsable[b-vu8zan6stx] {
    cursor: pointer;
    transition: box-shadow .12s ease, transform .12s ease;
}

.rcd-card--pulsable:hover[b-vu8zan6stx] {
    box-shadow: var(--rs-shadow-sm);
    transform: translateY(-1px);
}
/* /Pages/Reporting/Components/ReportChart.razor.rz.scp.css */
.rc-vacio[b-b2uyim9pmn] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 120px;
    padding: 1rem;
    text-align: center;
    font-size: .82rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 10px;
}

.rc-aviso[b-b2uyim9pmn] {
    margin-top: .3rem;
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportDataPanel.razor.rz.scp.css */
.rdp[b-p2hqcy5u5c] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-top: .6rem;
}

.rdp-seccion[b-p2hqcy5u5c] {
    padding-top: .5rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.rdp-seccion:first-child[b-p2hqcy5u5c] {
    border-top: none;
    padding-top: 0;
}

.rdp-titulo[b-p2hqcy5u5c] {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.rdp-vacio[b-p2hqcy5u5c] {
    font-size: .74rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.rdp-filtro[b-p2hqcy5u5c] {
    display: flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .35rem;
    margin-bottom: .25rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 6px;
    background: var(--rs-surface-container-low);
    font-size: .76rem;
}

.rdp-filtro-campo[b-p2hqcy5u5c] { font-weight: 500; }

.rdp-filtro-op[b-p2hqcy5u5c] { color: var(--rs-on-surface-muted); }

.rdp-filtro-valor[b-p2hqcy5u5c] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rdp-quitar[b-p2hqcy5u5c] {
    border: none;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
}

.rdp-quitar:hover[b-p2hqcy5u5c] { color: var(--rs-danger); }

.rdp-alta[b-p2hqcy5u5c] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin-top: .35rem;
}

.rdp-select[b-p2hqcy5u5c] {
    flex: 1 1 120px;
    min-width: 0;
    font-size: .76rem;
}

.rdp-valor-input[b-p2hqcy5u5c] {
    flex: 1 1 90px;
    min-width: 0;
}

.rdp-numero[b-p2hqcy5u5c] { width: 100px; }

.rdp-linea[b-p2hqcy5u5c] {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}

.rdp-check-label[b-p2hqcy5u5c],
.rdp-nota[b-p2hqcy5u5c] {
    font-size: .72rem;
    color: var(--rs-on-surface-variant);
}

.rdp-error[b-p2hqcy5u5c] {
    font-size: .74rem;
    color: var(--rs-danger);
    margin-top: .25rem;
}

.rdp-formula[b-p2hqcy5u5c] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .7rem;
    color: var(--rs-on-surface-muted);
}

.rdp-boton[b-p2hqcy5u5c] {
    margin-top: .3rem;
}
/* /Pages/Reporting/Components/ReportFormatPanel.razor.rz.scp.css */
.rfp[b-2lr7r8pxn5] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-top: .6rem;
}

.rfp-seccion[b-2lr7r8pxn5] {
    padding-top: .5rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.rfp-titulo[b-2lr7r8pxn5] {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.rfp-campo[b-2lr7r8pxn5] { width: 100%; }

.rfp-linea[b-2lr7r8pxn5] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .3rem;
}

.rfp-etiqueta[b-2lr7r8pxn5] {
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
    min-width: 72px;
}

.rfp-valor[b-2lr7r8pxn5] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
    min-width: 42px;
    text-align: right;
}

.rfp-nota[b-2lr7r8pxn5] {
    font-size: .68rem;
    color: var(--rs-on-surface-muted);
}

.rfp-slider[b-2lr7r8pxn5] { flex: 1 1 auto; }

.rfp-select[b-2lr7r8pxn5] { flex: 1 1 auto; min-width: 0; }

.rfp-numero[b-2lr7r8pxn5] { width: 92px; }

.rfp-check[b-2lr7r8pxn5] {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .2rem;
    font-size: .78rem;
}

.rfp-muestras[b-2lr7r8pxn5] {
    display: flex;
    gap: .2rem;
    margin-top: .2rem;
}

.rfp-muestra[b-2lr7r8pxn5] {
    width: 16px;
    height: 10px;
    border-radius: 2px;
}

.rfp-borrar[b-2lr7r8pxn5] {
    align-self: flex-start;
    margin-top: .3rem;
}

/* ── Reglas de formato ───────────────────────────────────────────────────────
   Cada regla se enseña con SU tono de fondo: la lista es a la vez el resumen y la leyenda, y así
   se ve de un vistazo si dos reglas se pisan. */
.rfp-regla[b-2lr7r8pxn5] {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-bottom: .25rem;
    padding: .2rem .35rem;
    border-radius: 6px;
    font-size: .74rem;
}

.rfp-regla-texto[b-2lr7r8pxn5] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rfp-regla-boton[b-2lr7r8pxn5] {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    color: inherit;
    opacity: .7;
    cursor: pointer;
    font-size: .85rem;
    line-height: 1;
    padding: 0 .1rem;
}

.rfp-regla-boton:hover[b-2lr7r8pxn5] { opacity: 1; }

.rfp-regla--bien[b-2lr7r8pxn5] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.rfp-regla--aviso[b-2lr7r8pxn5] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.rfp-regla--mal[b-2lr7r8pxn5] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.rfp-regla--info[b-2lr7r8pxn5] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.rfp-regla--neutro[b-2lr7r8pxn5] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.rfp-boton[b-2lr7r8pxn5] { margin-top: .3rem; }

/* ── Jerarquía ───────────────────────────────────────────────────────────────
   Los niveles van numerados porque el orden ES la funcionalidad: la misma lista al revés es otra
   forma de leer los datos. */
.rfp-nivel[b-2lr7r8pxn5] {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .25rem;
    padding: .2rem .35rem;
    border-radius: 6px;
    background: var(--rs-surface-container);
    font-size: .76rem;
}

.rfp-nivel-num[b-2lr7r8pxn5] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: .62rem;
    font-weight: 700;
}

.rfp-nivel-nombre[b-2lr7r8pxn5] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rfp-nivel-alta[b-2lr7r8pxn5] { margin-top: .3rem; }
/* /Pages/Reporting/Components/ReportFunnel.razor.rz.scp.css */
.rf-embudo[b-wd29cyx7mi] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .2rem 0;
}

.rf-etapa[b-wd29cyx7mi] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.rf-barra[b-wd29cyx7mi] {
    /* Centrado: es lo que le da la silueta de embudo en vez de la de un ranking. */
    margin: 0 auto;
    min-width: 44px;
    height: 30px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rf-valor[b-wd29cyx7mi] {
    font-size: .76rem;
    font-weight: 600;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
    font-variant-numeric: tabular-nums;
}

.rf-etiqueta[b-wd29cyx7mi] {
    text-align: center;
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
}

.rf-caida[b-wd29cyx7mi] {
    margin-left: .3rem;
    color: var(--rs-danger);
    font-size: .7rem;
}

.rf-vacio[b-wd29cyx7mi] {
    padding: 1.2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportGauge.razor.rz.scp.css */
.rg-wrap[b-q43cqvjed3] {
    position: relative;
    height: 100%;
    min-height: 160px;
}

.rg-texto[b-q43cqvjed3] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    text-align: center;
}

.rg-valor[b-q43cqvjed3] {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.rg-etiqueta[b-q43cqvjed3] {
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
}

.rg-objetivo[b-q43cqvjed3] {
    font-size: .7rem;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportHeatmap.razor.rz.scp.css */
.rh-wrap[b-6z5gc3lun4] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    max-height: 100%;
    overflow: auto;
}

.rh-tabla[b-6z5gc3lun4] {
    border-collapse: separate;
    border-spacing: 2px;
    font-size: .76rem;
}

.rh-tabla th[b-6z5gc3lun4] {
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    text-align: left;
    padding: .2rem .4rem;
    white-space: nowrap;
}

.rh-tabla thead th[b-6z5gc3lun4] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.rh-tabla td[b-6z5gc3lun4] {
    padding: .3rem .5rem;
    border-radius: 4px;
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface);
    min-width: 46px;
}

.rh-escala[b-6z5gc3lun4] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .68rem;
    color: var(--rs-on-surface-muted);
}

.rh-degradado[b-6z5gc3lun4] {
    flex: 1 1 auto;
    height: 8px;
    border-radius: 4px;
    max-width: 220px;
}

.rh-vacio[b-6z5gc3lun4] {
    padding: 1.2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportKpi.razor.rz.scp.css */
.rk-card[b-7ro29c3sh2] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .15rem;
    height: 100%;
    min-height: 110px;
    padding: .9rem 1.1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-sm);
}

.rk-valor[b-7ro29c3sh2] {
    font-size: 2.1rem;
    font-weight: 700;
    line-height: 1.05;
    color: var(--rs-primary-text);
    font-variant-numeric: tabular-nums;
}

.rk-etiqueta[b-7ro29c3sh2] {
    font-size: .78rem;
    color: var(--rs-on-surface-variant);
}

.rk-variacion[b-7ro29c3sh2] {
    font-size: .78rem;
    font-weight: 600;
    display: flex;
    align-items: baseline;
    gap: .25rem;
}

.rk-variacion--sube[b-7ro29c3sh2] { color: var(--rs-success); }
.rk-variacion--baja[b-7ro29c3sh2] { color: var(--rs-danger); }

.rk-objetivo[b-7ro29c3sh2] {
    font-size: .72rem;
    font-weight: 400;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportMatrix.razor.rz.scp.css */
.rm-wrap[b-tod1ctqk7e] {
    overflow: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    max-height: 100%;
}

.rm-tabla[b-tod1ctqk7e] {
    border-collapse: collapse;
    font-size: .84rem;
    min-width: 100%;
}

.rm-tabla th[b-tod1ctqk7e],
.rm-tabla td[b-tod1ctqk7e] {
    padding: .35rem .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    white-space: nowrap;
}

.rm-tabla thead th[b-tod1ctqk7e] {
    position: sticky;
    top: 0;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    font-weight: 600;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    z-index: 2;
}

/* La primera columna se queda fija: sin eso, al desplazar en horizontal se pierde de qué fila es
   cada número. */
.rm-fila[b-tod1ctqk7e],
.rm-esquina[b-tod1ctqk7e] {
    position: sticky;
    left: 0;
    background: var(--rs-surface-container);
    text-align: left;
    font-weight: 600;
    z-index: 1;
}

.rm-esquina[b-tod1ctqk7e] { z-index: 3; }

.rm-num[b-tod1ctqk7e] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rm-total-col[b-tod1ctqk7e] {
    border-left: 2px solid var(--rs-outline);
    font-weight: 600;
}

.rm-tabla tfoot td[b-tod1ctqk7e],
.rm-tabla tfoot th[b-tod1ctqk7e] {
    position: sticky;
    bottom: 0;
    background: var(--rs-surface-container);
    font-weight: 600;
    border-top: 2px solid var(--rs-outline);
}

.rm-vacio[b-tod1ctqk7e] {
    padding: 1.2rem;
    text-align: center;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}
/* /Pages/Reporting/Components/ReportProgressBars.razor.rz.scp.css */
.rp-lista[b-7pza3xvcp5] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.rp-fila[b-7pza3xvcp5] {
    display: grid;
    grid-template-columns: minmax(80px, 30%) 1fr auto;
    align-items: center;
    gap: .5rem;
    font-size: .78rem;
}

.rp-etiqueta[b-7pza3xvcp5] {
    color: var(--rs-on-surface-variant);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rp-pista[b-7pza3xvcp5] {
    height: 14px;
    border-radius: 7px;
    background: var(--rs-surface-container);
    overflow: hidden;
}

.rp-barra[b-7pza3xvcp5] {
    height: 100%;
    border-radius: 7px;
    transition: width .25s ease;
}

.rp-valor[b-7pza3xvcp5] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface);
}

.rp-vacio[b-7pza3xvcp5] {
    padding: 1.2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportRenderer.razor.rz.scp.css */
/* Rejilla de 12 columnas: cada visualización declara cuántas ocupa, igual que un panel de BI.
   En pantallas estrechas todas pasan a ancho completo, porque media pantalla de móvil no da para
   una gráfica legible. */

.rr-rejilla[b-ig9cgidctf] {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .8rem;
    align-items: stretch;
}

@media (max-width: 900px) {
    .rr-rejilla > .rr-hueco[b-ig9cgidctf] {
        grid-column: span 12 !important;
    }
}

.rr-hueco[b-ig9cgidctf] {
    min-width: 0;
    padding: .7rem .8rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-sm);
    transition: border-color .15s ease, box-shadow .15s ease;
}

/* Solo el diseñador marca una visualización como activa: en el visor nadie las selecciona. */
.rr-hueco--activo[b-ig9cgidctf] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--rs-primary) 25%, transparent);
}

/* Hueco de soltado mientras se arrastra un tipo desde la paleta. */
.rr-hueco--soltar[b-ig9cgidctf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    min-height: 140px;
    border: 2px dashed var(--rs-primary);
    background: color-mix(in srgb, var(--rs-primary) 6%, var(--rs-surface));
    color: var(--rs-primary-text);
    font-size: .82rem;
    box-shadow: none;
}

.rr-soltar-icono[b-ig9cgidctf] {
    font-family: 'Material Icons Round';
    font-size: 1.6rem;
    line-height: 1;
}

.rr-footer[b-ig9cgidctf] {
    margin-top: .6rem;
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
}

.rr-cached[b-ig9cgidctf] {
    margin-left: .2rem;
}

.rr-skeleton[b-ig9cgidctf] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.rr-skeleton-row[b-ig9cgidctf] {
    height: 34px;
    border-radius: 8px;
    background: var(--rs-surface-container);
    animation: rr-latido-b-ig9cgidctf 1.4s ease-in-out infinite;
}

@keyframes rr-latido-b-ig9cgidctf {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}

/* ── Migas de la jerarquía ───────────────────────────────────────────────────
   Bajar un nivel sin migas es un viaje de ida: al tercer clic ya nadie sabe qué está mirando. */
.rr-migas[b-ig9cgidctf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
    margin-bottom: .6rem;
    font-size: .78rem;
}

.rr-miga[b-ig9cgidctf] {
    border: none;
    background: transparent;
    color: var(--rs-primary-text);
    cursor: pointer;
    padding: .1rem .2rem;
    border-radius: 4px;
}

.rr-miga:hover[b-ig9cgidctf] { background: var(--rs-primary-subtle); }

.rr-miga--actual[b-ig9cgidctf] {
    color: var(--rs-on-surface);
    font-weight: 600;
    cursor: default;
}

.rr-miga-sep[b-ig9cgidctf] {
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportTable.razor.rz.scp.css */
/* Tabla del resultado. El scroll horizontal vive dentro del contenedor: la página nunca se
   desplaza en horizontal por un informe con muchas columnas. */

.rt-wrap[b-d39ezob2tx] {
    overflow: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    max-height: 100%;
}

.rt-tabla[b-d39ezob2tx] {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}

.rt-tabla th[b-d39ezob2tx],
.rt-tabla td[b-d39ezob2tx] {
    padding: .4rem .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: left;
    white-space: nowrap;
}

.rt-tabla thead th[b-d39ezob2tx] {
    position: sticky;
    top: 0;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    font-weight: 600;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    z-index: 1;
}

.rt-tabla tbody tr:hover[b-d39ezob2tx] {
    background: var(--rs-surface-container-low);
}

/* Los números a la derecha: es lo que permite comparar magnitudes de un vistazo. */
.rt-num[b-d39ezob2tx] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rt-flecha[b-d39ezob2tx] {
    font-size: .7rem;
    margin-right: .2rem;
}

.rt-flecha--sube[b-d39ezob2tx] { color: var(--rs-success); }
.rt-flecha--baja[b-d39ezob2tx] { color: var(--rs-danger); }

.rt-tabla tfoot td[b-d39ezob2tx] {
    position: sticky;
    bottom: 0;
    background: var(--rs-surface-container);
    font-weight: 600;
    border-top: 2px solid var(--rs-outline);
}

.rt-vacio[b-d39ezob2tx] {
    padding: 1.2rem;
    text-align: center;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}

/* Lo mismo en la tabla: la fila que filtra se ilumina al pasar por encima. */
.rt-fila--pulsable[b-d39ezob2tx] {
    cursor: pointer;
}

.rt-fila--pulsable:hover > td[b-d39ezob2tx] {
    background: var(--rs-primary-subtle);
}

/* ── Reglas de formato ───────────────────────────────────────────────────────
   Tonos de intención, no colores: se resuelven contra los tokens del tema y por eso siguen
   leyéndose en modo oscuro. El texto usa el token "on-*-subtle", que es el que está calculado
   para contrastar con ese fondo concreto. */
.rt-tono[b-d39ezob2tx] { font-weight: 600; }

.rt-tono--bien[b-d39ezob2tx] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.rt-tono--aviso[b-d39ezob2tx] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.rt-tono--mal[b-d39ezob2tx] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.rt-tono--info[b-d39ezob2tx] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.rt-tono--neutro[b-d39ezob2tx] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

/* ── Columnas de diferencia ──────────────────────────────────────────────────
   El color no lo decide el signo: lo decide si subir es bueno. La misma diferencia positiva es
   buena en kilómetros y mala en días de parada. */
.rt-delta-flecha[b-d39ezob2tx] {
    margin-right: .2rem;
    font-size: .7rem;
}

.rt-delta-pct[b-d39ezob2tx] {
    display: block;
    font-size: .68rem;
    opacity: .75;
}

.rt-delta--bien[b-d39ezob2tx] { color: var(--rs-success); }

.rt-delta--mal[b-d39ezob2tx] { color: var(--rs-danger); }
/* /Pages/Reporting/Components/ReportTreemap.razor.rz.scp.css */
.rtm-lienzo[b-iiin6vhuin] {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 160px;
    border-radius: 10px;
    overflow: hidden;
}

.rtm-celda[b-iiin6vhuin] {
    position: absolute;
    padding: .3rem .4rem;
    overflow: hidden;
    /* El borde del color del fondo de la página separa los rectángulos sin pintar una rejilla. */
    box-shadow: inset 0 0 0 1px var(--rs-surface);
    color: #fff;
}

.rtm-etiqueta[b-iiin6vhuin] {
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rtm-valor[b-iiin6vhuin] {
    font-size: .68rem;
    opacity: .9;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
    font-variant-numeric: tabular-nums;
}

.rtm-vacio[b-iiin6vhuin] {
    padding: 1.2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}
/* /Pages/Reporting/Components/ReportVisual.razor.rz.scp.css */
/* Marco común de toda visualización. */

.rvis[b-0vmv9rcgj6] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    height: 100%;
}

.rvis-titulo[b-0vmv9rcgj6] {
    font-size: .82rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    margin-bottom: .4rem;
    flex: 0 0 auto;
}

.rvis-cuerpo[b-0vmv9rcgj6] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}
/* /Pages/Reporting/Components/ReportVisualGallery.razor.rz.scp.css */
.rvg[b-t0wtog82ua] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.rvg-cabecera[b-t0wtog82ua] {
    display: flex;
    align-items: baseline;
    gap: .4rem;
    width: 100%;
    padding: .3rem .1rem;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.rvg-cabecera-texto[b-t0wtog82ua] {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface);
}

.rvg-cabecera-pista[b-t0wtog82ua] {
    flex: 1 1 auto;
    font-size: .66rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.rvg-cabecera-icono[b-t0wtog82ua] {
    font-family: 'Material Icons Round';
    font-size: 1.05rem;
    line-height: 1;
    color: var(--rs-on-surface-muted);
}

.rvg-grupo-titulo[b-t0wtog82ua] {
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .18rem;
}

.rvg-rejilla[b-t0wtog82ua] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
    gap: .25rem;
}

.rvg-boton[b-t0wtog82ua] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .05rem;
    padding: .3rem .1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    cursor: grab;
    overflow: hidden;
    transition: border-color .15s ease, background .15s ease, transform .12s ease, box-shadow .12s ease;
}

.rvg-boton:hover[b-t0wtog82ua] {
    border-color: var(--rs-outline-strong);
    background: var(--rs-surface-container-low);
    transform: translateY(-1px);
    box-shadow: var(--rs-shadow-sm);
}

.rvg-boton:active[b-t0wtog82ua] {
    cursor: grabbing;
}

@media (prefers-reduced-motion: reduce) {
    .rvg-boton[b-t0wtog82ua], .rvg-boton:hover[b-t0wtog82ua] {
        transform: none;
        transition: none;
    }
}

.rvg-boton--activo[b-t0wtog82ua] {
    border-color: var(--rs-primary);
    background: color-mix(in srgb, var(--rs-primary) 10%, var(--rs-surface));
    color: var(--rs-primary-text);
}

.rvg-icono[b-t0wtog82ua] {
    font-family: 'Material Icons Round';
    font-size: 1.1rem;
    line-height: 1;
}

.rvg-nombre[b-t0wtog82ua] {
    font-size: .54rem;
    text-align: center;
    line-height: 1.15;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Pages/Reporting/Components/ReportWell.razor.rz.scp.css */
.rw[b-g9vwh6jrxf] {
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 10px;
    padding: .45rem .5rem;
    background: var(--rs-surface-container-low);
    transition: border-color .15s ease, background .15s ease, opacity .15s ease;
}

/* Mientras hay un arrastre en marcha, el pozo contesta antes de soltar: elegible se marca,
   encima se enciende y el que no acepta se apaga. Nadie debería soltar a ciegas. */
.rw--elegible[b-g9vwh6jrxf] {
    border-color: var(--rs-primary);
    border-style: dashed;
    background: color-mix(in srgb, var(--rs-primary) 4%, var(--rs-surface));
}

.rw--encima[b-g9vwh6jrxf] {
    border-color: var(--rs-primary);
    border-style: solid;
    background: color-mix(in srgb, var(--rs-primary) 10%, var(--rs-surface));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--rs-primary) 25%, transparent);
}

.rw--inerte[b-g9vwh6jrxf] {
    opacity: .45;
}

.rw-cabecera[b-g9vwh6jrxf] {
    display: flex;
    align-items: center;
    gap: .3rem;
    margin-bottom: .3rem;
}

.rw-titulo[b-g9vwh6jrxf] {
    flex: 1 1 auto;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

/* El «+» del pozo: el camino para quien no arrastra. Discreto hasta que se pasa por encima,
   porque el gesto principal sigue siendo soltar el campo. */
.rw-anadir[b-g9vwh6jrxf] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 5px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: .85rem;
    line-height: 1;
    cursor: pointer;
}

.rw-anadir:hover[b-g9vwh6jrxf] {
    border-color: var(--rs-primary);
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.rw-selector[b-g9vwh6jrxf] {
    width: 100%;
    margin-bottom: .35rem;
}

.rw-vacio[b-g9vwh6jrxf] {
    font-size: .74rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
    padding: .25rem 0;
}

.rw-ficha[b-g9vwh6jrxf] {
    display: flex;
    align-items: center;
    gap: .3rem;
    padding: .24rem .38rem;
    margin-bottom: .25rem;
    border-radius: 6px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    font-size: .78rem;
    cursor: grab;
    animation: rw-entra-b-g9vwh6jrxf .18s ease;
}

.rw-ficha:active[b-g9vwh6jrxf] {
    cursor: grabbing;
}

@keyframes rw-entra-b-g9vwh6jrxf {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-ficha[b-g9vwh6jrxf] {
        animation: none;
    }
}

/* Destino de una reordenación: la ficha sobre la que caerá la arrastrada. */
.rw-ficha--destino[b-g9vwh6jrxf] {
    border-color: var(--rs-primary);
    box-shadow: inset 0 2px 0 var(--rs-primary);
}

.rw-ficha-nombre[b-g9vwh6jrxf] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--rs-on-surface);
}

/* El agregado o el corte, como etiqueta pulsable. Abre el mismo menú que el botón derecho. */
.rw-ajuste[b-g9vwh6jrxf] {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    border: none;
    border-radius: 4px;
    padding: .1rem .3rem;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-size: .68rem;
    white-space: nowrap;
    cursor: pointer;
    flex: 0 0 auto;
}

.rw-ajuste:hover[b-g9vwh6jrxf] {
    background: color-mix(in srgb, var(--rs-primary) 18%, var(--rs-surface));
}

.rw-caret[b-g9vwh6jrxf] {
    font-size: .55rem;
    opacity: .7;
}

.rw-quitar[b-g9vwh6jrxf] {
    border: none;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0 .15rem;
    flex: 0 0 auto;
}

.rw-quitar:hover[b-g9vwh6jrxf] {
    color: var(--rs-danger);
}

/* Marca de medida condicional. Una columna que no cuenta todas las filas tiene que decirlo en la
   ficha: sin la marca, la única pista es que el número no cuadra con el de al lado. */
.rw-condicion[b-g9vwh6jrxf] {
    flex: 0 0 auto;
    color: var(--rs-primary-text);
    font-size: .8rem;
    line-height: 1;
}
/* /Pages/Reporting/Components/WagonReportsPanel.razor.rz.scp.css */
.wrp[b-onm8kqdfit] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.wrp-barra[b-onm8kqdfit] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.wrp-select[b-onm8kqdfit] {
    min-width: 260px;
}

/* El candado no es decoración: dice que ese filtro no se puede quitar desde aquí. */
.wrp-acotado[b-onm8kqdfit] {
    display: flex;
    align-items: center;
    gap: .25rem;
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container);
    border-radius: 999px;
    padding: .15rem .5rem;
}

.wrp-cargando[b-onm8kqdfit],
.wrp-vacio[b-onm8kqdfit] {
    font-size: .82rem;
    color: var(--rs-on-surface-muted);
}

.wrp-vacio[b-onm8kqdfit] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
}

.wrp-vacio p[b-onm8kqdfit] {
    margin: .3rem 0 0;
    font-size: .8rem;
}
/* /Pages/Reporting/DashboardDesigner.razor.rz.scp.css */
/* Diseñador de paneles: informes | panel | propiedades. Misma disposición que el de informes,
   para que quien ya sabe usar uno sepa usar el otro. */

.dd-page[b-g8hqntrrqi] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.dd-toolbar[b-g8hqntrrqi] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding-bottom: .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.dd-titulo[b-g8hqntrrqi] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    flex: 1 1 320px;
}

.dd-nombre[b-g8hqntrrqi] {
    font-size: 1.05rem;
    font-weight: 600;
    width: 100%;
    max-width: 520px;
}

.dd-desc[b-g8hqntrrqi] {
    width: 100%;
    max-width: 520px;
    font-size: .82rem;
}

.dd-toolbar-acciones[b-g8hqntrrqi] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.dd-guardado[b-g8hqntrrqi] {
    font-size: .74rem;
    color: var(--rs-on-surface-muted);
    min-width: 7rem;
}

.dd-cuerpo[b-g8hqntrrqi] {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr) 290px;
    gap: .8rem;
    align-items: start;
}

@media (max-width: 1280px) {
    .dd-cuerpo[b-g8hqntrrqi] { grid-template-columns: 1fr 1fr; }
    .dd-lienzo[b-g8hqntrrqi] { grid-column: 1 / -1; order: -1; }
}

@media (max-width: 780px) {
    .dd-cuerpo[b-g8hqntrrqi] { grid-template-columns: 1fr; }
}

.dd-informes[b-g8hqntrrqi],
.dd-panel[b-g8hqntrrqi],
.dd-lienzo[b-g8hqntrrqi] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: .7rem;
}

.dd-informes[b-g8hqntrrqi],
.dd-panel[b-g8hqntrrqi] {
    max-height: 78vh;
    overflow-y: auto;
}

.dd-panel-titulo[b-g8hqntrrqi] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .4rem;
}

.dd-buscador[b-g8hqntrrqi] {
    width: 100%;
    margin-bottom: .5rem;
}

.dd-informe[b-g8hqntrrqi] {
    margin-bottom: .5rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.dd-informe:last-child[b-g8hqntrrqi] { border-bottom: none; }

.dd-informe-nombre[b-g8hqntrrqi] {
    font-size: .8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin-bottom: .2rem;
}

.dd-visual[b-g8hqntrrqi] {
    display: flex;
    align-items: center;
    gap: .3rem;
    width: 100%;
    padding: .18rem .3rem;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-size: .76rem;
    text-align: left;
    cursor: pointer;
}

.dd-visual:hover[b-g8hqntrrqi] { background: var(--rs-surface-container); }

.dd-visual-icono[b-g8hqntrrqi] {
    font-family: 'Material Icons Round';
    font-size: .95rem;
}

.dd-lienzo-barra[b-g8hqntrrqi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .5rem;
}

.dd-lienzo-nota[b-g8hqntrrqi] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
}

.dd-rejilla[b-g8hqntrrqi] {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .7rem;
    margin-top: .6rem;
}

@media (max-width: 900px) {
    .dd-rejilla > .dd-hueco[b-g8hqntrrqi] { grid-column: span 12 !important; }
}

.dd-hueco[b-g8hqntrrqi] {
    min-width: 0;
    border-radius: 12px;
    cursor: pointer;
}

.dd-hueco--activo[b-g8hqntrrqi] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

.dd-lienzo-vacio[b-g8hqntrrqi] {
    grid-column: span 12;
    padding: 2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
}

.dd-pestanas[b-g8hqntrrqi] {
    display: flex;
    gap: .2rem;
    margin-bottom: .5rem;
}

.dd-pestana[b-g8hqntrrqi] {
    flex: 1 1 0;
    padding: .3rem .4rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: .76rem;
    cursor: pointer;
}

.dd-pestana--activa[b-g8hqntrrqi] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.dd-seccion[b-g8hqntrrqi] {
    padding-top: .5rem;
    border-top: 1px solid var(--rs-outline-variant);
    margin-bottom: .3rem;
}

.dd-seccion:first-of-type[b-g8hqntrrqi] {
    border-top: none;
    padding-top: 0;
}

.dd-seccion-titulo[b-g8hqntrrqi] {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.dd-campo[b-g8hqntrrqi] { width: 100%; }

.dd-linea[b-g8hqntrrqi] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .3rem;
    flex-wrap: wrap;
}

.dd-etiqueta[b-g8hqntrrqi] {
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
    min-width: 72px;
}

.dd-valor[b-g8hqntrrqi] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
    min-width: 46px;
    text-align: right;
}

.dd-nota[b-g8hqntrrqi] {
    font-size: .68rem;
    color: var(--rs-on-surface-muted);
}

.dd-slider[b-g8hqntrrqi] { flex: 1 1 auto; }

.dd-numero[b-g8hqntrrqi] { width: 92px; }

.dd-select[b-g8hqntrrqi] { flex: 1 1 auto; min-width: 0; }

.dd-check[b-g8hqntrrqi] {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .78rem;
}

.dd-filtro[b-g8hqntrrqi] {
    display: flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .35rem;
    margin-bottom: .25rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 6px;
    background: var(--rs-surface-container-low);
    font-size: .76rem;
}

.dd-filtro-nombre[b-g8hqntrrqi] { font-weight: 500; }

.dd-filtro-campo[b-g8hqntrrqi] {
    flex: 1 1 auto;
    font-size: .68rem;
    color: var(--rs-on-surface-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dd-quitar[b-g8hqntrrqi] {
    border: none;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
}

.dd-quitar:hover[b-g8hqntrrqi] { color: var(--rs-danger); }

.dd-alta[b-g8hqntrrqi] {
    display: flex;
    gap: .25rem;
    margin-top: .3rem;
}

.dd-vacio[b-g8hqntrrqi] {
    font-size: .76rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
    padding: .4rem 0;
}

.dd-skeleton[b-g8hqntrrqi] {
    height: 60vh;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: dd-latido-b-g8hqntrrqi 1.4s ease-in-out infinite;
}

@keyframes dd-latido-b-g8hqntrrqi {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}
/* /Pages/Reporting/DashboardViewer.razor.rz.scp.css */
.dv-page[b-70svgcktnx] {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}

.dv-head[b-70svgcktnx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.dv-acciones[b-70svgcktnx] {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.dv-frescura[b-70svgcktnx] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
}

.dv-certificado[b-70svgcktnx] {
    color: var(--rs-success);
    font-size: 1.05rem;
    vertical-align: middle;
}

.dv-rejilla[b-70svgcktnx] {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .8rem;
    align-items: stretch;
}

@media (max-width: 900px) {
    .dv-rejilla > .dv-hueco[b-70svgcktnx] { grid-column: span 12 !important; }
}

.dv-hueco[b-70svgcktnx] { min-width: 0; }

.dv-vacio[b-70svgcktnx] {
    grid-column: span 12;
    padding: 2rem;
    text-align: center;
    font-style: italic;
    color: var(--rs-on-surface-muted);
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
}

/* Modo pantalla: el panel se come el hueco entero y se quita todo lo que no sean datos. */
.dv-page--kiosco[b-70svgcktnx] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: var(--rs-bg);
    padding: .6rem;
    overflow: auto;
}

.dv-kiosco-barra[b-70svgcktnx] {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .5rem;
}

.dv-kiosco-titulo[b-70svgcktnx] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    flex: 1 1 auto;
}

.dv-kiosco-hora[b-70svgcktnx] {
    font-size: .9rem;
    color: var(--rs-on-surface-variant);
    font-variant-numeric: tabular-nums;
}

.dv-kiosco-salir[b-70svgcktnx] {
    font-family: 'Material Icons Round';
    font-size: 1.1rem;
    border: none;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
}

.dv-skeleton[b-70svgcktnx] {
    height: 60vh;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: dv-latido-b-70svgcktnx 1.4s ease-in-out infinite;
}

@keyframes dv-latido-b-70svgcktnx {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}

/* ── Filtrado maestro ────────────────────────────────────────────────────────
   Las fichas de lo que se ha señalado pulsando en una baldosa. Van arriba del todo y no dentro de
   la barra de filtros: no son lo mismo. Un filtro global lo elige quien mira; esto es el rastro de
   un clic, y tiene que poder deshacerse en el mismo sitio donde se ve. */
.dv-seleccion[b-70svgcktnx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    margin-bottom: .6rem;
    padding: .35rem .5rem;
    border-radius: 8px;
    background: var(--rs-primary-subtle);
}

.dv-seleccion-titulo[b-70svgcktnx] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-primary-subtle);
}

.dv-ficha[b-70svgcktnx] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border: 1px solid var(--rs-primary);
    border-radius: 999px;
    padding: .1rem .5rem;
    background: var(--rs-surface);
    color: var(--rs-primary-text);
    font-size: .75rem;
    cursor: pointer;
}

.dv-ficha:hover[b-70svgcktnx] {
    background: var(--rs-surface-container);
}

.dv-ficha-x[b-70svgcktnx] {
    font-size: .9rem;
    line-height: 1;
    opacity: .7;
}

.dv-limpiar[b-70svgcktnx] {
    margin-left: auto;
    border: none;
    background: transparent;
    color: var(--rs-on-primary-subtle);
    font-size: .74rem;
    text-decoration: underline;
    cursor: pointer;
}

/* ── Pestañas del panel ──────────────────────────────────────────────────────
   Un panel de quince baldosas no se mira: se mira la mitad de arriba. Las pestañas lo parten sin
   partir los filtros, que es lo que se perdería montando dos paneles. */
.dv-pestanas[b-70svgcktnx] {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    margin-bottom: .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.dv-pestana[b-70svgcktnx] {
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--rs-on-surface-variant);
    padding: .35rem .7rem;
    font-size: .84rem;
    cursor: pointer;
}

.dv-pestana:hover[b-70svgcktnx] { color: var(--rs-on-surface); }

.dv-pestana--activa[b-70svgcktnx] {
    color: var(--rs-primary-text);
    border-bottom-color: var(--rs-primary);
    font-weight: 600;
}
/* /Pages/Reporting/FormatRuleDialog.razor.rz.scp.css */
.frd[b-jpo4nara2n] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.frd-campo[b-jpo4nara2n] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.frd-etiqueta[b-jpo4nara2n] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

.frd-control[b-jpo4nara2n] { width: 100%; }

.frd-linea[b-jpo4nara2n] {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.frd-numero[b-jpo4nara2n] { width: 140px; }

.frd-y[b-jpo4nara2n] {
    font-size: .78rem;
    color: var(--rs-on-surface-variant);
}

/* Los tonos se eligen viéndolos, no leyendo su nombre en un desplegable: es la única forma de
   saber si «Atención» es el amarillo que uno espera antes de guardar la regla. */
.frd-tonos[b-jpo4nara2n] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.frd-tono[b-jpo4nara2n] {
    border: 2px solid transparent;
    border-radius: 6px;
    padding: .25rem .6rem;
    font-size: .76rem;
    font-weight: 600;
    cursor: pointer;
}

.frd-tono--activo[b-jpo4nara2n] {
    border-color: var(--rs-on-surface);
}

.frd-tono--bien[b-jpo4nara2n] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.frd-tono--aviso[b-jpo4nara2n] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.frd-tono--mal[b-jpo4nara2n] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.frd-tono--info[b-jpo4nara2n] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.frd-tono--neutro[b-jpo4nara2n] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.frd-check[b-jpo4nara2n] {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.frd-ayuda[b-jpo4nara2n] {
    font-size: .72rem;
    line-height: 1.35;
    color: var(--rs-on-surface-variant);
}

.frd-error[b-jpo4nara2n] {
    padding: .3rem .5rem;
    border-radius: 6px;
    font-size: .76rem;
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.frd-acciones[b-jpo4nara2n] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/FormulaEditorDialog.razor.rz.scp.css */
.fe[b-954g5g31c6] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.fe-campo[b-954g5g31c6] { width: 100%; }

.fe-titulo[b-954g5g31c6] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .25rem;
}

.fe-area[b-954g5g31c6] {
    width: 100%;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .84rem;
}

.fe-error[b-954g5g31c6],
.fe-ok[b-954g5g31c6] {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-top: .3rem;
    padding: .3rem .5rem;
    border-radius: 6px;
    font-size: .76rem;
}

.fe-error[b-954g5g31c6] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.fe-ok[b-954g5g31c6] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.fe-posicion[b-954g5g31c6] {
    margin-left: auto;
    opacity: .75;
    font-variant-numeric: tabular-nums;
}

.fe-ayudas[b-954g5g31c6] {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: .6rem;
}

@media (max-width: 640px) {
    .fe-ayudas[b-954g5g31c6] { grid-template-columns: 1fr; }
}

.fe-scroll[b-954g5g31c6] {
    max-height: 190px;
    overflow-y: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
}

.fe-item[b-954g5g31c6] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding: .25rem .45rem;
    border: none;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.fe-item:last-child[b-954g5g31c6] { border-bottom: none; }

.fe-item:hover[b-954g5g31c6] { background: var(--rs-surface-container); }

.fe-item-nombre[b-954g5g31c6] {
    font-size: .78rem;
    color: var(--rs-on-surface);
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
}

.fe-item-tipo[b-954g5g31c6],
.fe-item-ayuda[b-954g5g31c6] {
    font-size: .68rem;
    color: var(--rs-on-surface-muted);
}

.fe-vacio[b-954g5g31c6] {
    padding: .5rem;
    font-size: .76rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.fe-nota[b-954g5g31c6] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
}

.fe-acciones[b-954g5g31c6] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/InspectDataDialog.razor.rz.scp.css */
.idd[b-3qutycoetc] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.idd-barra[b-3qutycoetc] {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
}

.idd-aviso[b-3qutycoetc] {
    padding: .1rem .4rem;
    border-radius: 4px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

/* La tabla scrollea dentro de su caja, nunca la página: el diálogo tiene que caber en pantalla
   aunque el informe traiga mil filas. */
.idd-wrap[b-3qutycoetc] {
    max-height: 60vh;
    overflow: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
}

.idd-tabla[b-3qutycoetc] {
    width: 100%;
    border-collapse: collapse;
    font-size: .78rem;
}

.idd-tabla th[b-3qutycoetc],
.idd-tabla td[b-3qutycoetc] {
    padding: .3rem .5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    white-space: nowrap;
}

.idd-tabla th[b-3qutycoetc] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    text-align: left;
    font-weight: 600;
}

.idd-tabla tbody tr:hover > td[b-3qutycoetc] {
    background: var(--rs-surface-container-low);
}

.idd-num[b-3qutycoetc] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /Pages/Reporting/IntegralReport.razor.rz.scp.css */
/* Los estilos documentales viven en wwwroot/css/integral-report.css
   para que los capítulos hijos y la impresión compartan las mismas reglas. */
/* /Pages/Reporting/IntegralSendDialog.razor.rz.scp.css */
.sd[b-d2ie6n61pd] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.sd-campo[b-d2ie6n61pd] { width: 100%; }

.sd-resumen[b-d2ie6n61pd] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
    padding: .6rem .75rem;
    border-radius: 10px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
}

.sd-resumen label[b-d2ie6n61pd] {
    display: block;
    font-size: .62rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.sd-resumen strong[b-d2ie6n61pd] {
    display: block;
    font-size: .82rem;
    margin-top: .1rem;
}

.sd-seccion[b-d2ie6n61pd] {
    padding-top: .4rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.sd-titulo[b-d2ie6n61pd] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.sd-nota[b-d2ie6n61pd] {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin-top: .35rem;
    padding: .4rem .55rem;
    border-radius: 8px;
    font-size: .74rem;
}

.sd-nota--bien[b-d2ie6n61pd] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.sd-nota--aviso[b-d2ie6n61pd] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.sd-acciones[b-d2ie6n61pd] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}

@media (max-width: 640px) {
    .sd-resumen[b-d2ie6n61pd] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Reporting/IntegralSubscriptionDialog.razor.rz.scp.css */
.sd[b-2lfex2sj2b] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.sd-campo[b-2lfex2sj2b] { width: 100%; }

.sd-fila[b-2lfex2sj2b] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.sd-medio[b-2lfex2sj2b] { flex: 1 1 160px; }

.sd-corto[b-2lfex2sj2b] { flex: 0 1 100px; }

.sd-seccion[b-2lfex2sj2b] {
    padding-top: .4rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.sd-titulo[b-2lfex2sj2b] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.sd-nota[b-2lfex2sj2b] {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin-top: .35rem;
    padding: .4rem .55rem;
    border-radius: 8px;
    font-size: .74rem;
}

.sd-nota--bien[b-2lfex2sj2b] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.sd-nota--aviso[b-2lfex2sj2b] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.sd-check[b-2lfex2sj2b] {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
}

.sd-acciones[b-2lfex2sj2b] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/IntegralSubscriptionsDialog.razor.rz.scp.css */
.sl[b-tpt01bjahg] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.sl-nota[b-tpt01bjahg] {
    font-size: .76rem;
    color: var(--rs-on-surface-variant);
}

.sl-vacio[b-tpt01bjahg] {
    display: flex;
    gap: .8rem;
    align-items: center;
    padding: 1rem;
    border-radius: 10px;
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline);
}

.sl-vacio p[b-tpt01bjahg] {
    margin: .15rem 0 0;
    font-size: .8rem;
    color: var(--rs-on-surface-variant);
}

.sl-tabla[b-tpt01bjahg] {
    overflow-x: auto;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
}

.sl-tabla table[b-tpt01bjahg] {
    width: 100%;
    border-collapse: collapse;
    font-size: .8rem;
}

.sl-tabla th[b-tpt01bjahg] {
    text-align: left;
    padding: .5rem .6rem;
    font-size: .64rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container);
    border-bottom: 1px solid var(--rs-outline);
    white-space: nowrap;
}

.sl-tabla td[b-tpt01bjahg] {
    padding: .5rem .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    vertical-align: top;
}

.sl-tabla tr.is-inactive td[b-tpt01bjahg] {
    opacity: .6;
}

.sl-sub[b-tpt01bjahg] {
    font-size: .7rem;
    color: var(--rs-on-surface-muted);
}

.sl-filtros[b-tpt01bjahg] {
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sl-num[b-tpt01bjahg] {
    text-align: right;
}

.sl-estado[b-tpt01bjahg] {
    display: inline-block;
    padding: .1rem .5rem;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
}

.sl-estado--on[b-tpt01bjahg] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.sl-estado--off[b-tpt01bjahg] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.sl-acciones[b-tpt01bjahg] {
    white-space: nowrap;
    display: flex;
    gap: .25rem;
}

.sl-pie[b-tpt01bjahg] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}
/* /Pages/Reporting/MeasureConditionDialog.razor.rz.scp.css */
.mcd[b-pkwx7kvflp] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

/* La primera vez, todo el mundo confunde esto con un filtro del informe. Explicarlo arriba cuesta
   dos líneas y ahorra la columna vacía que sale de haberlo entendido al revés. */
.mcd-explica[b-pkwx7kvflp] {
    padding: .4rem .55rem;
    border-radius: 6px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: .76rem;
    line-height: 1.35;
}

.mcd-campo[b-pkwx7kvflp] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.mcd-etiqueta[b-pkwx7kvflp] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

.mcd-control[b-pkwx7kvflp] { width: 100%; }

.mcd-ayuda[b-pkwx7kvflp] {
    font-size: .72rem;
    color: var(--rs-on-surface-variant);
}

.mcd-error[b-pkwx7kvflp] {
    padding: .3rem .5rem;
    border-radius: 6px;
    font-size: .76rem;
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.mcd-acciones[b-pkwx7kvflp] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/NewDashboardDialog.razor.rz.scp.css */
.nd-dialogo[b-eizoeshbk7] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.nd-campo[b-eizoeshbk7] { width: 100%; }

.nd-nota[b-eizoeshbk7] {
    font-size: .74rem;
    color: var(--rs-on-surface-muted);
}

.nd-acciones[b-eizoeshbk7] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/NewReportDialog.razor.rz.scp.css */
.nr-dialogo[b-rz4306gwbq] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.nr-campo[b-rz4306gwbq] {
    width: 100%;
}

.nr-descripcion[b-rz4306gwbq] {
    font-size: .8rem;
    color: var(--rs-on-surface-variant);
    padding: .5rem .6rem;
    border-radius: 8px;
    background: var(--rs-surface-container);
}

.nr-aviso[b-rz4306gwbq] {
    margin-top: .35rem;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    padding: .3rem .5rem;
    border-radius: 6px;
}

.nr-nota[b-rz4306gwbq] {
    font-size: .74rem;
    color: var(--rs-on-surface-muted);
}

.nr-acciones[b-rz4306gwbq] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
    margin-top: .3rem;
}
/* /Pages/Reporting/PublishReportDialog.razor.rz.scp.css */
.pr-dialogo[b-thx9lzspy2] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.pr-resumen[b-thx9lzspy2] {
    font-size: .88rem;
    color: var(--rs-on-surface);
}

.pr-nota[b-thx9lzspy2] {
    margin-top: .3rem;
    font-size: .78rem;
    color: var(--rs-on-surface-muted);
}

.pr-campo[b-thx9lzspy2] {
    width: 100%;
}

.pr-acciones[b-thx9lzspy2] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/ReportDesigner.razor.rz.scp.css */
/* Diseñador: lienzo | inspector. El lienzo manda —es el informe— y ocupa todo lo que sobra;
   el inspector es una columna fija con la paleta, los datos del gráfico seleccionado y los
   campos, en ese orden, que es el orden en que se usan. */

.rd-page[b-hggbvdmjrj] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.rd-toolbar[b-hggbvdmjrj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding-bottom: .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.rd-titulo[b-hggbvdmjrj] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    flex: 1 1 320px;
}

.rd-nombre[b-hggbvdmjrj] {
    font-size: 1.05rem;
    font-weight: 600;
    width: 100%;
    max-width: 520px;
}

.rd-desc[b-hggbvdmjrj] {
    width: 100%;
    max-width: 520px;
    font-size: .82rem;
}

.rd-toolbar-acciones[b-hggbvdmjrj] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.rd-guardado[b-hggbvdmjrj] {
    font-size: .74rem;
    color: var(--rs-on-surface-muted);
    min-width: 7rem;
}

.rd-cuerpo[b-hggbvdmjrj] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: .8rem;
    align-items: start;
}

/* En pantallas estrechas el inspector pasa debajo del lienzo, no al lado: partirlo en dos
   columnas dejaba los pozos y los campos demasiado angostos para arrastrar nada. */
@media (max-width: 1080px) {
    .rd-cuerpo[b-hggbvdmjrj] {
        grid-template-columns: 1fr;
    }

    .rd-inspector[b-hggbvdmjrj] {
        max-height: none;
    }
}

.rd-inspector[b-hggbvdmjrj],
.rd-lienzo[b-hggbvdmjrj] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: .7rem;
}

.rd-inspector[b-hggbvdmjrj] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-height: 82vh;
    overflow-y: auto;
}

/* Los pozos se quedan fijos arriba mientras la lista de campos corre por debajo: si hay que
   bajar a buscar un campo, el sitio donde soltarlo tiene que seguir a la vista. */
.rd-pozos-sticky[b-hggbvdmjrj] {
    position: sticky;
    top: 0;
    z-index: 2;
    /* Fondo opaco obligatorio: lo que scrollea por debajo son las fichas de campo. */
    background: var(--rs-surface);
}

/* Registros o resumen. Son dos consultas distintas, así que se eligen, no se deducen. */
.rd-modo[b-hggbvdmjrj] {
    display: flex;
    gap: .2rem;
    margin-bottom: .4rem;
}

.rd-modo-boton[b-hggbvdmjrj] {
    flex: 1 1 0;
    padding: .25rem .3rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 7px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: .72rem;
    cursor: pointer;
}

.rd-modo-boton:hover[b-hggbvdmjrj] {
    border-color: var(--rs-outline-strong);
}

.rd-modo-boton--activo[b-hggbvdmjrj] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.rd-pozos-titulo[b-hggbvdmjrj] {
    font-size: .74rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin-bottom: .35rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Lo que le falta al gráfico seleccionado para pintar algo. Es un aviso, no un error: se lee
   como una instrucción y por eso va en el tono de información, no en el de peligro. */
.rd-pozos-falta[b-hggbvdmjrj] {
    font-size: .72rem;
    line-height: 1.3;
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
    border-radius: 6px;
    padding: .3rem .4rem;
    margin-bottom: .4rem;
}

.rd-sin-seleccion[b-hggbvdmjrj] {
    font-size: .78rem;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container-low);
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 10px;
    padding: .7rem;
    text-align: center;
}

.rd-campos-cabecera[b-hggbvdmjrj] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .4rem;
    margin-bottom: .3rem;
}

.rd-campos-cabecera .rd-dataset[b-hggbvdmjrj] {
    margin-bottom: 0;
    font-size: .72rem;
    font-weight: 400;
    color: var(--rs-on-surface-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rd-panel-titulo[b-hggbvdmjrj] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

.rd-dataset[b-hggbvdmjrj] {
    font-size: .82rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin-bottom: .4rem;
}

.rd-buscador[b-hggbvdmjrj] {
    width: 100%;
    margin-bottom: .4rem;
}

.rd-grupo-titulo[b-hggbvdmjrj] {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin: .5rem 0 .2rem;
}

.rd-campo[b-hggbvdmjrj] {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .2rem .3rem;
    border-radius: 6px;
    cursor: grab;
    user-select: none;
}

.rd-campo:hover[b-hggbvdmjrj] {
    background: var(--rs-surface-container);
}

.rd-campo:active[b-hggbvdmjrj] {
    cursor: grabbing;
}

/* El campo que va por el aire se queda como fantasma en la lista: se ve qué se está moviendo. */
.rd-campo--fantasma[b-hggbvdmjrj] {
    opacity: .35;
}

/* El distintivo del tipo evita tener que leer la etiqueta para saber si algo se puede sumar. */
.rd-campo-icono[b-hggbvdmjrj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 18px;
    border-radius: 4px;
    font-size: .66rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.rd-campo-icono--medida[b-hggbvdmjrj] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.rd-campo-icono--dimension[b-hggbvdmjrj] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.rd-campo-icono--detalle[b-hggbvdmjrj] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-muted);
}

.rd-campo-nombre[b-hggbvdmjrj] {
    font-size: .8rem;
    color: var(--rs-on-surface);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* El lienzo avisa de que también se puede soltar en él mientras hay un arrastre en marcha. */
.rd-lienzo--destino[b-hggbvdmjrj] {
    border-color: var(--rs-primary);
    border-style: dashed;
    background: color-mix(in srgb, var(--rs-primary) 3%, var(--rs-surface));
}

/* Estado de arranque: tres pasos en lugar de una tabla vacía o un error de validación. */
.rd-arranque[b-hggbvdmjrj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 46vh;
    padding: 2rem 1rem;
    border: 2px dashed var(--rs-outline-variant);
    border-radius: 12px;
}

.rd-arranque-titulo[b-hggbvdmjrj] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.rd-arranque-pasos[b-hggbvdmjrj] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    max-width: 34rem;
}

.rd-arranque-paso[b-hggbvdmjrj] {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .86rem;
    color: var(--rs-on-surface-variant);
}

.rd-arranque-num[b-hggbvdmjrj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-size: .74rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.rd-lienzo-barra[b-hggbvdmjrj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .5rem;
}

.rd-lienzo-nota[b-hggbvdmjrj] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
}

.rd-lienzo-pista[b-hggbvdmjrj] {
    font-size: .7rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.rd-pestanas[b-hggbvdmjrj] {
    display: flex;
    gap: .2rem;
    margin-bottom: .5rem;
}

.rd-pestana[b-hggbvdmjrj] {
    flex: 1 1 0;
    padding: .3rem .3rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: .76rem;
    cursor: pointer;
}

.rd-pestana--activa[b-hggbvdmjrj] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.rd-pozos[b-hggbvdmjrj] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.rd-skeleton[b-hggbvdmjrj] {
    height: 60vh;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: rd-latido-b-hggbvdmjrj 1.4s ease-in-out infinite;
}

@keyframes rd-latido-b-hggbvdmjrj {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}
/* /Pages/Reporting/ReportFromAssistant.razor.rz.scp.css */
/* «Abrir en Informes» desde el asistente. Tokens del tema (claro/oscuro). */

.rfa-page[b-clf10qihbk] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.rfa-head[b-clf10qihbk] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.rfa-calculado[b-clf10qihbk] {
    font-size: .8rem;
    color: var(--rs-on-surface-variant);
}

.rfa-skeleton[b-clf10qihbk] {
    padding: 1.5rem;
    border-radius: 12px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    font-size: .85rem;
}

.rfa-vacio[b-clf10qihbk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    max-width: 560px;
    margin: 2rem auto;
    padding: 1.5rem;
    text-align: center;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
}

.rfa-vacio p[b-clf10qihbk] {
    margin: 0;
    font-size: .85rem;
    color: var(--rs-on-surface-variant);
}

.rfa-vacio-icono[b-clf10qihbk] {
    font-size: 2rem;
    color: var(--rs-on-surface-muted);
}

.rfa-vacio-titulo[b-clf10qihbk] {
    font-weight: 700;
    font-size: 1rem;
}
/* /Pages/Reporting/ReportViewer.razor.rz.scp.css */
/* Visor de un informe publicado. */

.rv-page[b-g9qn74qlu8] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.rv-head[b-g9qn74qlu8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.rv-acciones[b-g9qn74qlu8] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.rv-periodo[b-g9qn74qlu8] {
    min-width: 170px;
}

.rv-certificado[b-g9qn74qlu8] {
    color: var(--rs-success);
    font-size: 1.05rem;
    vertical-align: middle;
}

.rv-filtros[b-g9qn74qlu8] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
    font-size: .78rem;
    color: var(--rs-on-surface-variant);
}

.rv-filtro-chip[b-g9qn74qlu8] {
    padding: .1rem .5rem;
    border-radius: 999px;
    background: var(--rs-surface-container);
    border: 1px solid var(--rs-outline-variant);
}

.rv-skeleton[b-g9qn74qlu8] {
    height: 320px;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: rv-latido-b-g9qn74qlu8 1.4s ease-in-out infinite;
}

@keyframes rv-latido-b-g9qn74qlu8 {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}
/* /Pages/Reporting/ScheduleDialog.razor.rz.scp.css */
.sd[b-ugg5ed0sj0] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.sd-campo[b-ugg5ed0sj0] { width: 100%; }

.sd-fila[b-ugg5ed0sj0] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.sd-medio[b-ugg5ed0sj0] { flex: 1 1 140px; }

.sd-seccion[b-ugg5ed0sj0] {
    padding-top: .4rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.sd-titulo[b-ugg5ed0sj0] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .3rem;
}

.sd-nota[b-ugg5ed0sj0] {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin-top: .35rem;
    padding: .4rem .55rem;
    border-radius: 8px;
    font-size: .74rem;
}

.sd-nota--bien[b-ugg5ed0sj0] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

/* El aviso de los externos es el punto donde alguien puede mandar fuera datos de más: se ve. */
.sd-nota--aviso[b-ugg5ed0sj0] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.sd-check[b-ugg5ed0sj0] {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
}

.sd-acciones[b-ugg5ed0sj0] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
}
/* /Pages/Reporting/SchedulesIndex.razor.rz.scp.css */
.si-page[b-6ii3sdjjdc] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.si-seccion[b-6ii3sdjjdc] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    padding: .8rem;
}

.si-seccion-titulo[b-6ii3sdjjdc] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
    margin-bottom: .5rem;
}

.si-tabla-wrap[b-6ii3sdjjdc] {
    overflow-x: auto;
}

.si-tabla[b-6ii3sdjjdc] {
    width: 100%;
    border-collapse: collapse;
    font-size: .82rem;
}

.si-tabla th[b-6ii3sdjjdc],
.si-tabla td[b-6ii3sdjjdc] {
    padding: .4rem .6rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: left;
    vertical-align: top;
}

.si-tabla thead th[b-6ii3sdjjdc] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container);
}

.si-inactivo[b-6ii3sdjjdc] { opacity: .6; }

.si-pausado[b-6ii3sdjjdc] {
    margin-left: .3rem;
    font-size: .66rem;
    padding: .05rem .35rem;
    border-radius: 999px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.si-externos[b-6ii3sdjjdc] { color: var(--rs-on-warning-subtle); }

.si-acciones[b-6ii3sdjjdc] {
    display: flex;
    gap: .2rem;
}

.si-entregas[b-6ii3sdjjdc] {
    background: var(--rs-surface-container-low);
}

.si-entrega[b-6ii3sdjjdc] {
    display: flex;
    gap: .6rem;
    align-items: baseline;
    font-size: .76rem;
    padding: .15rem 0;
}

.si-entrega-estado--ok[b-6ii3sdjjdc] { color: var(--rs-success); }
.si-entrega-estado--mal[b-6ii3sdjjdc] { color: var(--rs-danger); }

.si-entrega-destino[b-6ii3sdjjdc] { color: var(--rs-on-surface-variant); }

.si-entrega-filas[b-6ii3sdjjdc],
.si-entrega-error[b-6ii3sdjjdc] {
    color: var(--rs-on-surface-muted);
    font-size: .72rem;
}

.si-exports[b-6ii3sdjjdc] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.si-export[b-6ii3sdjjdc] {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    padding: .3rem .45rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    font-size: .8rem;
}

.si-export-estado[b-6ii3sdjjdc] {
    font-size: .68rem;
    padding: .05rem .4rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.si-export-estado--pending[b-6ii3sdjjdc],
.si-export-estado--running[b-6ii3sdjjdc] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.si-export-estado--ready[b-6ii3sdjjdc] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.si-export-estado--failed[b-6ii3sdjjdc] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.si-export-nombre[b-6ii3sdjjdc] { font-weight: 500; }

.si-export-fecha[b-6ii3sdjjdc],
.si-export-filas[b-6ii3sdjjdc],
.si-export-error[b-6ii3sdjjdc] {
    color: var(--rs-on-surface-muted);
    font-size: .74rem;
}

.si-export-descarga[b-6ii3sdjjdc] {
    margin-left: auto;
    color: var(--rs-primary-text);
    font-weight: 500;
}

.si-vacio[b-6ii3sdjjdc] {
    font-size: .8rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.si-boton[b-6ii3sdjjdc] { margin-top: .5rem; }

.si-skeleton[b-6ii3sdjjdc] {
    height: 40vh;
    border-radius: 12px;
    background: var(--rs-surface-container);
    animation: si-latido-b-6ii3sdjjdc 1.4s ease-in-out infinite;
}

@keyframes si-latido-b-6ii3sdjjdc {
    0%, 100% { opacity: .55; }
    50% { opacity: .85; }
}
/* /Pages/Reporting/ShareReportDialog.razor.rz.scp.css */
.sr-dialogo[b-zbct5cu469] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.sr-nota[b-zbct5cu469] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    font-size: .78rem;
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
    padding: .5rem .6rem;
    border-radius: 8px;
}

.sr-alta[b-zbct5cu469] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.sr-tipo[b-zbct5cu469] { min-width: 120px; }
.sr-destino[b-zbct5cu469] { min-width: 220px; }
.sr-nivel[b-zbct5cu469] { min-width: 190px; }

.sr-lista[b-zbct5cu469] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.sr-fila[b-zbct5cu469] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .35rem .5rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    font-size: .84rem;
}

.sr-destinatario[b-zbct5cu469] {
    font-weight: 500;
    flex: 1 1 auto;
}

.sr-etiqueta-tipo[b-zbct5cu469],
.sr-etiqueta-nivel[b-zbct5cu469] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
    padding: .1rem .4rem;
    border-radius: 999px;
    background: var(--rs-surface-container-high);
}

.sr-vacio[b-zbct5cu469] {
    font-size: .8rem;
    font-style: italic;
    color: var(--rs-on-surface-muted);
}

.sr-acciones[b-zbct5cu469] {
    display: flex;
    justify-content: flex-end;
}
/* /Pages/Reporting/WindowEditorDialog.razor.rz.scp.css */
.wed[b-l8g652v2y2] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.wed-campo[b-l8g652v2y2] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.wed-etiqueta[b-l8g652v2y2] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-muted);
}

.wed-control[b-l8g652v2y2] { width: 100%; }

.wed-numero[b-l8g652v2y2] { width: 120px; }

/* La explicación de lo que hace cada función va debajo y en pequeño: se lee al elegir y deja de
   estorbar en cuanto se sabe. */
.wed-ayuda[b-l8g652v2y2] {
    font-size: .72rem;
    line-height: 1.35;
    color: var(--rs-on-surface-variant);
}

.wed-error[b-l8g652v2y2] {
    padding: .3rem .5rem;
    border-radius: 6px;
    font-size: .76rem;
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.wed-acciones[b-l8g652v2y2] {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
    margin-top: .2rem;
}
/* /Pages/Taller/WorkshopCatalogPage.razor.rz.scp.css */
/*
    Catálogo de incidencias de taller — vista "Catálogo" de "Taller Hermes - Oficina.dc.html".
    Solo tokens --rs-*: ni un color literal, para que claro y oscuro salgan de la misma regla
    (CLAUDE.md "Theming"). Los tokens existen globalmente en railsider-theme.css, así que esta hoja
    no necesita su propio bloque :root[data-theme="dark"].
*/

.wcat[b-jsjmrf8n6v] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ── Pestañas de familia ─────────────────────────────────────────────────────────────────────── */

.wcat__tabs[b-jsjmrf8n6v] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.wcat__tab[b-jsjmrf8n6v] {
    height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.wcat__tab:hover[b-jsjmrf8n6v] {
    background: var(--rs-surface-container-low);
}

.wcat__tab--on[b-jsjmrf8n6v],
.wcat__tab--on:hover[b-jsjmrf8n6v] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.wcat__spacer[b-jsjmrf8n6v] {
    flex: 1;
}

.wcat__stats[b-jsjmrf8n6v] {
    font-size: 12.5px;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
}

/* ── Rejilla de ámbitos ──────────────────────────────────────────────────────────────────────── */

.wcat__grid[b-jsjmrf8n6v] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 18px;
    align-items: start;
}

.wcat-group[b-jsjmrf8n6v] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.wcat-group__head[b-jsjmrf8n6v] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 4px;
}

.wcat-group__dot[b-jsjmrf8n6v] {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex: none;
}

.wcat-group__scope[b-jsjmrf8n6v] {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rs-on-surface-variant);
}

.wcat-group__role[b-jsjmrf8n6v] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

.wcat-group__role-icon[b-jsjmrf8n6v] {
    font-size: 13px !important;
}

.wcat-group__empty[b-jsjmrf8n6v] {
    margin: 0;
    padding: 14px 4px;
    font-size: 12.5px;
    color: var(--rs-on-surface-muted);
}

/* ── Incidencia ──────────────────────────────────────────────────────────────────────────────── */

.wcat-issue[b-jsjmrf8n6v] {
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    overflow: hidden;
}

.wcat-issue--open[b-jsjmrf8n6v] {
    border-color: var(--rs-primary);
}

.wcat-issue--retired[b-jsjmrf8n6v] {
    opacity: 0.6;
}

.wcat-issue__head[b-jsjmrf8n6v] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 6px 12px;
    border: 0;
    background: transparent;
    color: var(--rs-on-surface);
    font-family: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}

.wcat-issue__head:hover[b-jsjmrf8n6v] {
    background: var(--rs-surface-container-low);
}

.wcat-issue__chev[b-jsjmrf8n6v] {
    font-size: 20px !important;
    color: var(--rs-on-surface-muted);
    flex: none;
}

.wcat-issue__name[b-jsjmrf8n6v] {
    font-weight: 700;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    /* Sin esto el nombre parte en dos líneas Y ademas se recorta: "Mecanismo de brazo" salía
       como "Me… / de brazo". La elipsis solo funciona sobre una línea. */
    white-space: nowrap;
}

.wcat-issue__summary[b-jsjmrf8n6v] {
    font-size: 12px;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
}

.wcat-issue__retired[b-jsjmrf8n6v] {
    padding: 2px 7px;
    border-radius: 4px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.wcat-issue__body[b-jsjmrf8n6v] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 4px 12px 12px 42px;
}

/* ── Subincidencia y operación ───────────────────────────────────────────────────────────────── */

.wcat-sub[b-jsjmrf8n6v] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.wcat-sub__head[b-jsjmrf8n6v] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
}

.wcat-sub__name[b-jsjmrf8n6v] {
    font-size: 12px;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.wcat-sub__empty[b-jsjmrf8n6v] {
    margin: 0;
    font-size: 12px;
    color: var(--rs-on-surface-muted);
}

.wcat-op[b-jsjmrf8n6v] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 4px 10px;
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    font-size: 13px;
}

.wcat-op--retired[b-jsjmrf8n6v] {
    opacity: 0.55;
}

.wcat-op__name[b-jsjmrf8n6v] {
    flex: 1;
    min-width: 0;
}

/* ── Chip de rol de cierre ───────────────────────────────────────────────────────────────────── */

.wcat-role[b-jsjmrf8n6v] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 26px;
    padding: 0 9px;
    border: 0;
    border-radius: 999px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.wcat-role--workshop[b-jsjmrf8n6v] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.wcat-role:disabled[b-jsjmrf8n6v] {
    cursor: default;
}

.wcat-role__icon[b-jsjmrf8n6v] {
    font-size: 14px !important;
}

/* ── Chip de piezas propuestas ───────────────────────────────────────────────────────────────── */

.wcat-parts[b-jsjmrf8n6v] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 18rem;
    height: 26px;
    padding: 0 9px;
    border: 0;
    border-radius: 999px;
    background: var(--rs-cyan-subtle);
    color: var(--rs-on-cyan-subtle);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.wcat-parts:disabled[b-jsjmrf8n6v] {
    cursor: default;
}

.wcat-parts__icon[b-jsjmrf8n6v] {
    font-size: 14px !important;
    flex: none;
}

.wcat-parts__text[b-jsjmrf8n6v] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Botones de icono y de alta ──────────────────────────────────────────────────────────────── */

.wcat-icon-btn[b-jsjmrf8n6v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    flex: none;
    border-radius: 6px;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
}

.wcat-icon-btn:hover[b-jsjmrf8n6v] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

.wcat-icon-btn--danger:hover[b-jsjmrf8n6v] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.wcat-icon-btn .material-icons-round[b-jsjmrf8n6v] {
    font-size: 16px !important;
}

.wcat-add[b-jsjmrf8n6v] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 30px;
    padding: 0 10px;
    border: 1px dashed var(--rs-outline);
    border-radius: 8px;
    background: transparent;
    color: var(--rs-primary-text);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.wcat-add:hover[b-jsjmrf8n6v] {
    background: var(--rs-surface-container-low);
}

.wcat-add--muted[b-jsjmrf8n6v] {
    color: var(--rs-on-surface-variant);
}

.wcat-add--block[b-jsjmrf8n6v] {
    align-self: stretch;
    justify-content: center;
    height: 40px;
    border-radius: 10px;
    font-size: 13px;
}

.wcat-add .material-icons-round[b-jsjmrf8n6v] {
    font-size: 16px !important;
}

/* ── Pie y vacío ─────────────────────────────────────────────────────────────────────────────── */

.wcat__note[b-jsjmrf8n6v] {
    margin: 0;
    font-size: 12.5px;
    color: var(--rs-on-surface-muted);
    text-wrap: pretty;
}

.wcat__note-icon[b-jsjmrf8n6v] {
    font-size: 14px !important;
    vertical-align: -2px;
}

.wcat-empty[b-jsjmrf8n6v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 48px 24px;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    text-align: center;
}

.wcat-empty__icon[b-jsjmrf8n6v] {
    font-size: 40px !important;
    color: var(--rs-on-surface-muted);
}

.wcat-empty__title[b-jsjmrf8n6v] {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}

.wcat-empty__hint[b-jsjmrf8n6v] {
    margin: 0;
    max-width: 52ch;
    font-size: 13px;
    color: var(--rs-on-surface-variant);
    text-wrap: pretty;
}
/* /Pages/Taller/WorkshopInterventionsIndex.razor.rz.scp.css */
/*
    Intervenciones de taller. Solo tokens --rs-*: un color literal se queda igual al cambiar de
    tema y rompe la pantalla en oscuro (CLAUDE.md, "Theming").

    La rejilla de la tabla se declara una sola vez en .wint-row y la comparten cabecera y filas,
    para que no puedan descuadrarse al tocar una sin la otra.
*/

.wint[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* ── Los cuatro números ─────────────────────────────────────────────────── */

.wint-kpis[b-plho4nim40] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.wint-kpi[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
}

.wint-kpi__label[b-plho4nim40] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--rs-on-surface-variant);
}

.wint-kpi__value[b-plho4nim40] {
    font-size: 1.65rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.wint-kpi__hint[b-plho4nim40] {
    font-size: .78rem;
    color: var(--rs-on-surface-muted);
}

.wint-kpi--info .wint-kpi__value[b-plho4nim40] { color: var(--rs-info); }
.wint-kpi--warning .wint-kpi__value[b-plho4nim40] { color: var(--rs-warning); }
.wint-kpi--danger .wint-kpi__value[b-plho4nim40] { color: var(--rs-danger); }
.wint-kpi--primary .wint-kpi__value[b-plho4nim40] { color: var(--rs-primary-text); }

/* ── Pestañas ───────────────────────────────────────────────────────────── */

.wint-toolbar[b-plho4nim40] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.wint-tabs[b-plho4nim40] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.wint-tab[b-plho4nim40] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-size: .82rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.wint-tab:hover[b-plho4nim40] { background: var(--rs-surface-hover); }

.wint-tab.is-active[b-plho4nim40] {
    border-color: var(--rs-primary);
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-weight: 700;
}

.wint-tab__n[b-plho4nim40] {
    font-variant-numeric: tabular-nums;
    font-size: .78rem;
    opacity: .8;
}

/* ── Cuerpo ─────────────────────────────────────────────────────────────── */

.wint-body[b-plho4nim40] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.wint-body--split[b-plho4nim40] { grid-template-columns: minmax(0, 1.35fr) minmax(320px, 1fr); }

@media (max-width: 1100px) {
    .wint-body--split[b-plho4nim40] { grid-template-columns: minmax(0, 1fr); }
}

/* ── Tabla ──────────────────────────────────────────────────────────────── */

.wint-table[b-plho4nim40] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface);
    /* Las seis columnas no caben en un móvil: la tabla se desplaza dentro de su caja, nunca la
       página entera (docs/ui/PREMISAS-UI.md). */
    overflow-x: auto;
}

.wint-row[b-plho4nim40] {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) 56px minmax(150px, 2fr) 82px 110px 104px;
    gap: 12px;
    align-items: center;
    width: 100%;
    min-width: 640px;
    box-sizing: border-box;
    padding: 12px 16px;
    border: 0;
    border-top: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-size: .85rem;
    text-align: left;
    cursor: pointer;
}

.wint-row:hover[b-plho4nim40] { background: var(--rs-surface-hover); }

.wint-row.is-selected[b-plho4nim40] { background: var(--rs-surface-selected); }

.wint-row--head[b-plho4nim40] {
    border-top: 0;
    padding: 10px 16px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    font-size: .75rem;
    font-weight: 700;
    cursor: default;
}

.wint-row--head:hover[b-plho4nim40] { background: var(--rs-surface-container); }

.wint-row__plate[b-plho4nim40] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.wint-row__type[b-plho4nim40] {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.wint-row__issues[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.wint-row__issues-main[b-plho4nim40],
.wint-row__issues-sub[b-plho4nim40] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wint-row__issues-main[b-plho4nim40] { font-weight: 600; }

.wint-row__issues-sub[b-plho4nim40] {
    font-size: .76rem;
    color: var(--rs-on-surface-variant);
}

.wint-row__date[b-plho4nim40],
.wint-row__days[b-plho4nim40] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.wint-tone--neutral[b-plho4nim40] { color: var(--rs-on-surface); }
.wint-tone--warning[b-plho4nim40] { color: var(--rs-warning); font-weight: 600; }
.wint-tone--danger[b-plho4nim40] { color: var(--rs-danger); font-weight: 700; }

.wint-chip[b-plho4nim40] {
    justify-self: start;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
    white-space: nowrap;
}

.wint-chip--info[b-plho4nim40] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.wint-chip--success[b-plho4nim40] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.wint-chip--warning[b-plho4nim40] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }

/* ── Vacío ──────────────────────────────────────────────────────────────── */

.wint-empty[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 40px 24px;
    text-align: center;
    color: var(--rs-on-surface-muted);
}

.wint-empty .material-icons-round[b-plho4nim40] {
    font-size: 2.2rem !important;
    color: var(--rs-on-surface-variant);
}

.wint-empty__title[b-plho4nim40] {
    margin: 0;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.wint-empty__hint[b-plho4nim40] {
    margin: 0;
    font-size: .85rem;
    max-width: 44ch;
}

/* ── Panel de detalle ───────────────────────────────────────────────────── */

.wint-detail[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 20px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: var(--rs-shadow-sm);
    position: sticky;
    top: 16px;
}

.wint-detail__head[b-plho4nim40] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--rs-primary);
}

.wint-detail__id[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.wint-detail__kind[b-plho4nim40] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--rs-on-surface-variant);
}

.wint-detail__plate[b-plho4nim40] {
    font-size: 1.12rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.wint-detail__sub[b-plho4nim40] {
    font-size: .8rem;
    color: var(--rs-on-surface-variant);
}

/* La banda de una intervención anulada. Neutra y no roja: no es un error del que la lee, es un
   hecho del registro — y se lista junto a las finalizadas, así que solo tiene que distinguirse. */
.wint-cancelled[b-plho4nim40] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: 0 0 .75rem;
    padding: .6rem .75rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    font-size: .82rem;
    line-height: 1.35;
}

.wint-cancelled .material-icons-round[b-plho4nim40] {
    font-size: 1.05rem;
    flex: 0 0 auto;
}

.wint-detail__close[b-plho4nim40] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
}

.wint-detail__close:hover[b-plho4nim40] { background: var(--rs-surface-container); }

.wint-detail__close .material-icons-round[b-plho4nim40] { font-size: 1.25rem !important; }

.wint-detail__dates[b-plho4nim40] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.wint-box[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 12px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
}

.wint-box--accent[b-plho4nim40] {
    border-color: var(--rs-primary);
    background: var(--rs-primary-subtle);
}

.wint-box__label[b-plho4nim40] {
    font-size: .7rem;
    color: var(--rs-on-surface-muted);
}

.wint-box--accent .wint-box__label[b-plho4nim40] { color: var(--rs-primary-text); }

.wint-box__value[b-plho4nim40] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.wint-box--accent .wint-box__value[b-plho4nim40] { color: var(--rs-primary-text); }

.wint-section__title[b-plho4nim40] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--rs-on-surface-variant);
}

/* ── Operaciones realizadas ─────────────────────────────────────────────── */

.wint-ops[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wint-ops__head[b-plho4nim40] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.wint-ops__hint[b-plho4nim40] {
    font-size: .78rem;
    color: var(--rs-on-surface-muted);
}

.wint-ops__grid[b-plho4nim40] {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) 82px minmax(0, 1fr) 104px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    overflow: hidden;
    font-size: .82rem;
}

.wint-ops__th[b-plho4nim40] {
    padding: 7px 10px;
    background: var(--rs-surface-container);
    font-size: .72rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.wint-ops__th--right[b-plho4nim40] { text-align: right; }

.wint-ops__name[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    padding: 8px 10px;
    border-top: 1px solid var(--rs-outline-variant);
}

.wint-ops__op[b-plho4nim40] { font-weight: 600; }

.wint-ops__meta[b-plho4nim40] {
    font-size: .72rem;
    color: var(--rs-on-surface-variant);
}

.wint-ops__cell[b-plho4nim40] {
    padding: 6px;
    border-top: 1px solid var(--rs-outline-variant);
}

/* Radzen monta sus propios elementos dentro: se apunta al hijo, no solo al contenedor. */
.wint-ops__cell[b-plho4nim40]  .wint-input,
.wint-ops__cell[b-plho4nim40]  .wint-input input {
    width: 100%;
    box-sizing: border-box;
}

.wint-ops__cell[b-plho4nim40]  .wint-input--num input {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Lo que falta se marca en el borde, no con un mensaje: la casilla vacía ya dice qué falta y
   dónde, sin robarle sitio a la tabla. */
.wint-ops__cell[b-plho4nim40]  .wint-input.is-missing input {
    border-color: var(--rs-warning);
}

/* Piezas del almacén de una línea: ocupa el ancho entero de la rejilla, debajo de sus casillas. */
.wint-ops__parts[b-plho4nim40] {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 8px;
}

.wint-ops__parts-icon[b-plho4nim40] {
    font-size: 16px;
    color: var(--rs-on-surface-variant);
}

.wint-ops__parts-none[b-plho4nim40] {
    font-size: .75rem;
    color: var(--rs-on-surface-muted);
}

.wint-part[b-plho4nim40] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 4px 2px 8px;
    border-radius: 999px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: .75rem;
    font-variant-numeric: tabular-nums;
}

.wint-part__remove[b-plho4nim40] {
    display: inline-flex;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.wint-part__remove .material-icons-round[b-plho4nim40] { font-size: 14px; }

.wint-part__remove:focus-visible[b-plho4nim40] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 1px;
}

.wint-ops__totals[b-plho4nim40] {
    grid-column: 1 / span 4;
    display: flex;
    justify-content: flex-end;
    gap: 24px;
    padding: 8px 10px;
    border-top: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    font-size: .8rem;
    color: var(--rs-on-surface-variant);
}

.wint-ops__totals b[b-plho4nim40] {
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.wint-ops__empty[b-plho4nim40] {
    margin: 0;
    padding: 14px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    text-align: center;
    font-size: .82rem;
    color: var(--rs-on-surface-muted);
}

/* ── Incidencias del vagón ──────────────────────────────────────────────── */

.wint-issues[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wint-issue[b-plho4nim40] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: .84rem;
}

.wint-issue--open[b-plho4nim40] { background: var(--rs-warning-subtle); }
.wint-issue--closed[b-plho4nim40] { background: var(--rs-success-subtle); }

.wint-issue .material-icons-round[b-plho4nim40] { font-size: 1.12rem !important; }

.wint-issue--open .material-icons-round[b-plho4nim40],
.wint-issue--open .wint-issue__title[b-plho4nim40],
.wint-issue--open .wint-issue__days[b-plho4nim40] { color: var(--rs-on-warning-subtle); }

.wint-issue--closed .material-icons-round[b-plho4nim40],
.wint-issue--closed .wint-issue__title[b-plho4nim40],
.wint-issue--closed .wint-issue__days[b-plho4nim40] { color: var(--rs-on-success-subtle); }

.wint-issue__text[b-plho4nim40] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.wint-issue__title[b-plho4nim40] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wint-issue__meta[b-plho4nim40] {
    font-size: .72rem;
    color: var(--rs-on-surface-variant);
}

.wint-issue__days[b-plho4nim40] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ── Acciones ───────────────────────────────────────────────────────────── */

.wint-detail__actions[b-plho4nim40] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 6px;
    border-top: 1px solid var(--rs-outline-variant);
}
/* /Pages/Taller/WorkshopIssueRowActions.razor.rz.scp.css */
/* Viven aquí y no en WorkshopIssuesIndex.razor.css porque el CSS aislado va con el componente
   que dibuja el marcado: en el listado no casaban con nada (ver el comentario del .razor). */

.wiss-act[b-vprb2r2akz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    cursor: pointer;
}

.wiss-act:hover:not(:disabled)[b-vprb2r2akz] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

.wiss-act:disabled[b-vprb2r2akz] {
    opacity: 0.35;
    cursor: default;
}

.wiss-act--ok[b-vprb2r2akz] {
    color: var(--rs-success);
}

.wiss-act--ok:hover:not(:disabled)[b-vprb2r2akz] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.wiss-act--danger:hover:not(:disabled)[b-vprb2r2akz] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.wiss-act--labelled[b-vprb2r2akz] {
    width: auto;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--rs-outline-variant);
    font-size: 13px;
    font-weight: 600;
}

.wiss-act .material-icons-round[b-vprb2r2akz] {
    font-size: 17px !important;
}

/* /Pages/Taller/WorkshopIssuesIndex.razor.rz.scp.css */
/*
    Incidencias de taller — vista "Incidencias" de "Taller Hermes - Oficina.dc.html".
    Solo tokens --rs-*, ni un color literal (CLAUDE.md "Theming"). Las medidas de la tabla y de los
    chips salen del artboard.
*/

.wiss[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ── Panel de filtros ────────────────────────────────────────────────────────────────────────── */

.wiss-filters[b-0dvv8bw77g] {
    display: flex;
    align-items: flex-end;
    gap: 14px;
    flex-wrap: wrap;
    padding: 16px 18px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
}

.wiss-field[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.wiss-field__label[b-0dvv8bw77g] {
    font-size: 12.5px;
    color: var(--rs-on-surface-variant);
}

.wiss-filters__clear[b-0dvv8bw77g] {
    align-self: flex-end;
}

/* ── KPI ─────────────────────────────────────────────────────────────────────────────────────── */

.wiss-kpis[b-0dvv8bw77g] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.wiss-kpi[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
}

.wiss-kpi__label[b-0dvv8bw77g] {
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rs-on-surface-variant);
}

.wiss-kpi__value[b-0dvv8bw77g] {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 24px;
    font-weight: 700;
}

/* El tipo más repetido es un nombre, no una cifra: ni monoespaciado ni a 24px, que desbordaría. */
.wiss-kpi__value--text[b-0dvv8bw77g] {
    font-family: inherit;
    font-size: 17px;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wiss-kpi__hint[b-0dvv8bw77g] {
    font-size: 12px;
    color: var(--rs-on-surface-muted);
}

/* ── Barra de leyenda y acciones ─────────────────────────────────────────────────────────────── */

.wiss-bar[b-0dvv8bw77g] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.wiss-bar__spacer[b-0dvv8bw77g] {
    flex: 1;
}

.wiss-bar__count[b-0dvv8bw77g] {
    font-size: 12.5px;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

.wiss-chip[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 10px 0 4px;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.wiss-chip:hover[b-0dvv8bw77g] {
    background: var(--rs-surface-container-low);
}

.wiss-chip--on[b-0dvv8bw77g],
.wiss-chip--on:hover[b-0dvv8bw77g] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
}

.wiss-chip__ini[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 800;
}

.wiss-chip__n[b-0dvv8bw77g] {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11.5px;
    color: var(--rs-on-surface-muted);
}

.wiss-chip-clear[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 30px;
    padding: 0 10px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--rs-primary-text);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.wiss-chip-clear .material-icons-round[b-0dvv8bw77g] {
    font-size: 15px !important;
}

.wiss-views[b-0dvv8bw77g] {
    display: inline-flex;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 8px;
    overflow: hidden;
    background: var(--rs-surface);
}

.wiss-views__btn[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 32px;
    border: 0;
    background: transparent;
    color: var(--rs-on-surface-variant);
    cursor: pointer;
}

.wiss-views__btn--on[b-0dvv8bw77g] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

.wiss-views__btn .material-icons-round[b-0dvv8bw77g] {
    font-size: 17px !important;
}

/* ── Tabla ───────────────────────────────────────────────────────────────────────────────────── */

.wiss-table-wrap[b-0dvv8bw77g] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    overflow-x: auto;
    background: var(--rs-surface);
}

.wiss-table[b-0dvv8bw77g] {
    min-width: 1080px;
}

.wiss-table__head[b-0dvv8bw77g],
.wiss-table__row[b-0dvv8bw77g] {
    display: grid;
    grid-template-columns: 118px 52px 90px minmax(150px, 1.6fr) minmax(120px, 1.2fr) 110px minmax(120px, 1.4fr) 104px 100px 136px;
    gap: 10px;
    align-items: center;
}

.wiss-table__head[b-0dvv8bw77g] {
    padding: 10px 14px;
    background: var(--rs-surface-container);
    font-size: 12px;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.wiss-table__actions-h[b-0dvv8bw77g] {
    text-align: center;
}

.wiss-table__row[b-0dvv8bw77g] {
    padding: 9px 14px;
    border-top: 1px solid var(--rs-outline-variant);
    font-size: 13px;
}

.wiss-table__row:hover[b-0dvv8bw77g] {
    background: var(--rs-surface-hover);
}

/* Una cerrada no desaparece pero pierde peso: ya no es trabajo pendiente. */
.wiss-table__row--closed[b-0dvv8bw77g] {
    opacity: 0.75;
}

.wiss-table__actions[b-0dvv8bw77g] {
    display: flex;
    justify-content: center;
    gap: 2px;
}

/* ── Celdas compartidas ──────────────────────────────────────────────────────────────────────── */

.wiss-mono[b-0dvv8bw77g] {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12.5px;
    white-space: nowrap;
}

.wiss-muted[b-0dvv8bw77g] {
    color: var(--rs-on-surface-variant);
}

.wiss-ellipsis[b-0dvv8bw77g] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wiss-plate[b-0dvv8bw77g]  .plate-link {
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 600;
    white-space: nowrap;
}

.wiss-scope[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

.wiss-scope__dot[b-0dvv8bw77g] {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex: none;
}

.wiss-type[b-0dvv8bw77g] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.wiss-type__ini[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex: none;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 800;
}

.wiss-type__name[b-0dvv8bw77g] {
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wiss-origin[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

.wiss-origin .material-icons-round[b-0dvv8bw77g] {
    font-size: 15px !important;
}

.wiss-days[b-0dvv8bw77g] {
    justify-self: start;
    padding: 2px 8px;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.wiss-days--neutral[b-0dvv8bw77g] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.wiss-days--warning[b-0dvv8bw77g] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.wiss-days--danger[b-0dvv8bw77g] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.wiss-closed-tag[b-0dvv8bw77g] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ── Vista en filas ──────────────────────────────────────────────────────────────────────────── */

.wiss-cards[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wiss-card[b-0dvv8bw77g] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px 16px;
    align-items: center;
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
}

.wiss-card__id[b-0dvv8bw77g] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.wiss-card__plate[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    font-size: 12px;
}

.wiss-card__field[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    font-size: 13px;
}

.wiss-card__label[b-0dvv8bw77g] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
}

.wiss-card__strong[b-0dvv8bw77g] {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* En la tarjeta, el contenedor es flex y `justify-self` no aplica: sin esto el chip de días se
   estira a todo el ancho de la columna y parece una barra de progreso. */
.wiss-card__field .wiss-days[b-0dvv8bw77g],
.wiss-card__field .wiss-closed-tag[b-0dvv8bw77g] {
    align-self: flex-start;
}

.wiss-card__actions[b-0dvv8bw77g] {
    display: flex;
    gap: 2px;
}

/* ── Maestro-detalle ─────────────────────────────────────────────────────────────────────────── */

.wiss-md[b-0dvv8bw77g] {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(0, 1.6fr);
    gap: 14px;
    align-items: start;
}

.wiss-md__list[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    overflow: hidden;
    background: var(--rs-surface);
}

.wiss-md__item[b-0dvv8bw77g] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 0;
    border-top: 1px solid var(--rs-outline-variant);
    border-left: 3px solid transparent;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.wiss-md__item:first-child[b-0dvv8bw77g] {
    border-top: 0;
}

.wiss-md__item:hover[b-0dvv8bw77g] {
    background: var(--rs-surface-hover);
}

.wiss-md__item--on[b-0dvv8bw77g] {
    border-left-color: var(--rs-primary);
    background: var(--rs-surface-selected);
}

.wiss-md__item-text[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
    font-size: 12px;
}

.wiss-md__item-text .wiss-muted[b-0dvv8bw77g] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wiss-detail[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    position: sticky;
    top: 16px;
}

.wiss-detail__head[b-0dvv8bw77g] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.wiss-detail__ini[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 800;
}

.wiss-detail__plate[b-0dvv8bw77g]  .plate-link {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 18px;
    font-weight: 700;
}

.wiss-detail__origin[b-0dvv8bw77g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.wiss-detail__origin .material-icons-round[b-0dvv8bw77g] {
    font-size: 13px !important;
}

.wiss-detail__grid[b-0dvv8bw77g] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px 18px;
    font-size: 13px;
}

.wiss-detail__field[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.wiss-detail__key[b-0dvv8bw77g] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-muted);
}

.wiss-detail__obs[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    font-size: 13px;
}

.wiss-detail__foot[b-0dvv8bw77g] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding-top: 8px;
    border-top: 1px solid var(--rs-outline-variant);
}

/* ── Vacío ───────────────────────────────────────────────────────────────────────────────────── */

.wiss-empty[b-0dvv8bw77g] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 48px 24px;
    border: 1px dashed var(--rs-outline-variant);
    border-radius: 12px;
    background: var(--rs-surface);
    text-align: center;
}

.wiss-empty__icon[b-0dvv8bw77g] {
    font-size: 40px !important;
    color: var(--rs-on-surface-muted);
}

.wiss-empty__title[b-0dvv8bw77g] {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}

.wiss-empty__hint[b-0dvv8bw77g] {
    margin: 0 0 6px;
    max-width: 56ch;
    font-size: 13px;
    color: var(--rs-on-surface-variant);
    text-wrap: pretty;
}

/* ── Pantallas estrechas ─────────────────────────────────────────────────────────────────────── */

@media (max-width: 1100px) {
    .wiss-md[b-0dvv8bw77g] {
        grid-template-columns: minmax(0, 1fr);
    }

    .wiss-detail[b-0dvv8bw77g] {
        position: static;
    }
}
/* /Pages/Taller/WorkshopMaterialPickerDialog.razor.rz.scp.css */
/* Diálogo para elegir pieza del almacén (parte de trabajo y cierre de incidencia). */
.wmat-dlg__loading[b-cctlilrce6] { display: flex; align-items: center; gap: 8px; color: var(--rs-on-surface-variant); }
.wmat-dlg__list[b-cctlilrce6] { display: flex; flex-direction: column; max-height: 300px; overflow-y: auto;
    border: 1px solid var(--rs-outline-variant); border-radius: 8px; }
.wmat-dlg__row[b-cctlilrce6] { display: grid; grid-template-columns: minmax(0, 7rem) minmax(0, 1fr) auto; gap: 8px;
    align-items: center; padding: 8px 10px; border: 0; border-top: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface); color: var(--rs-on-surface); text-align: left; cursor: pointer; font: inherit; }
.wmat-dlg__row:first-child[b-cctlilrce6] { border-top: 0; }
.wmat-dlg__row:hover[b-cctlilrce6] { background: var(--rs-surface-container-low); }
.wmat-dlg__row:focus-visible[b-cctlilrce6] { outline: 2px solid var(--rs-primary); outline-offset: -2px; }
.wmat-dlg__row.is-selected[b-cctlilrce6] { background: var(--rs-primary-subtle); }
.wmat-dlg__ref[b-cctlilrce6] { font-weight: 700; font-variant-numeric: tabular-nums; }
.wmat-dlg__name[b-cctlilrce6] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wmat-dlg__qty[b-cctlilrce6] { font-size: .78rem; color: var(--rs-on-surface-variant); font-variant-numeric: tabular-nums; }
.wmat-dlg__row.is-out .wmat-dlg__qty[b-cctlilrce6] { color: var(--rs-danger); }
.wmat-dlg__empty[b-cctlilrce6] { margin: 0; padding: 12px; color: var(--rs-on-surface-muted); }
.wmat-dlg__warn[b-cctlilrce6] { color: var(--rs-warning); }
/* /Pages/Taller/WorkshopStockIndex.razor.rz.scp.css */
/*
    Stock del taller (/taller/stock). Solo tokens --rs-* (CLAUDE.md "Theming", PREMISAS-UI §7): el
    estado de cada pieza va en el borde izquierdo de su fila y además en texto.
*/

.wstk[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.wstk-loading[b-nvpi5y4zm7] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 24px;
    color: var(--rs-on-surface-variant);
}

/* ── Cabecera ──────────────────────────────────────────────────────────────────────────────── */

.wstk-hero[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 18px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
}

.wstk-hero__title[b-nvpi5y4zm7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.wstk-hero__title h1[b-nvpi5y4zm7] {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.wstk-hero__icon[b-nvpi5y4zm7] {
    font-size: 22px;
    color: var(--rs-primary-text);
}

.wstk-hero__site[b-nvpi5y4zm7] {
    font-weight: 600;
    color: var(--rs-on-surface-variant);
}

.wstk-hero__meta[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: .8rem;
    color: var(--rs-on-surface-variant);
}

.wstk-hero__meta > span[b-nvpi5y4zm7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.wstk-hero__meta .material-icons-round[b-nvpi5y4zm7] { font-size: 16px; }

.wstk-sites[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* ── Tarjetas ──────────────────────────────────────────────────────────────────────────────── */

.wstk-stats[b-nvpi5y4zm7] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.wstk-stat[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
}

/* La primera contesta la pregunta de la pantalla. */
.wstk-stat--answer[b-nvpi5y4zm7] { border-left-color: var(--rs-warning); }

.wstk-stat__label[b-nvpi5y4zm7] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--rs-on-surface-variant);
}

.wstk-stat__value[b-nvpi5y4zm7] {
    font-size: 1.5rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface);
}

.wstk-stat__hint[b-nvpi5y4zm7] {
    font-size: .75rem;
    color: var(--rs-on-surface-muted);
}

/* ── Barra: chips, búsqueda, acción ────────────────────────────────────────────────────────── */

.wstk-bar[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.wstk-filters[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.wstk-chip[b-nvpi5y4zm7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font: inherit;
    font-size: .82rem;
    cursor: pointer;
}

.wstk-chip:hover[b-nvpi5y4zm7] { background: var(--rs-surface-container-low); }

.wstk-chip--on[b-nvpi5y4zm7] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.wstk-chip__n[b-nvpi5y4zm7] {
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface-variant);
}

.wstk-chip:focus-visible[b-nvpi5y4zm7],
.wstk-clear:focus-visible[b-nvpi5y4zm7] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
}

[b-nvpi5y4zm7] .wstk-search { width: 240px; max-width: 100%; }

.wstk-clear[b-nvpi5y4zm7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--rs-primary-text);
    font: inherit;
    font-size: .8rem;
    cursor: pointer;
}

.wstk-clear .material-icons-round[b-nvpi5y4zm7] { font-size: 16px; }

.wstk-bar__spacer[b-nvpi5y4zm7] { flex: 1; }

/* ── Cuerpo: lista + movimientos ───────────────────────────────────────────────────────────── */

.wstk-body[b-nvpi5y4zm7] {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
    gap: 14px;
    align-items: start;
}

.wstk-list[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wstk-row[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-success);
}

.wstk-row.is-low[b-nvpi5y4zm7] { border-left-color: var(--rs-warning); }
.wstk-row.is-out[b-nvpi5y4zm7] { border-left-color: var(--rs-danger); }
.wstk-row.is-retired[b-nvpi5y4zm7] { border-left-color: var(--rs-neutral); opacity: .75; }
.wstk-row.is-selected[b-nvpi5y4zm7] { box-shadow: 0 0 0 2px var(--rs-primary); }

.wstk-row__what[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.wstk-row__ref[b-nvpi5y4zm7] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.wstk-row__name[b-nvpi5y4zm7] {
    color: var(--rs-on-surface-variant);
    min-width: 0;
}

.wstk-row__state[b-nvpi5y4zm7] {
    margin-left: auto;
    font-size: .72rem;
    font-weight: 700;
    color: var(--rs-on-surface-variant);
}

.wstk-row.is-low .wstk-row__state[b-nvpi5y4zm7] { color: var(--rs-warning); }
.wstk-row.is-out .wstk-row__state[b-nvpi5y4zm7] { color: var(--rs-danger); }

.wstk-row__facts[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    margin: 0;
}

.ft-fact[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ft-fact dt[b-nvpi5y4zm7] {
    font-size: .7rem;
    color: var(--rs-on-surface-muted);
}

.ft-fact dd[b-nvpi5y4zm7] {
    margin: 0;
    font-size: .85rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--rs-on-surface);
}

.wstk-row__actions[b-nvpi5y4zm7] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.wstk-empty[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 32px 16px;
    border-radius: 10px;
    border: 1px dashed var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    text-align: center;
}

.wstk-empty .material-icons-round[b-nvpi5y4zm7] {
    font-size: 32px;
    color: var(--rs-on-surface-muted);
}

.wstk-empty b[b-nvpi5y4zm7] { color: var(--rs-on-surface); }

.wstk-moves[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
}

.wstk-moves__head[b-nvpi5y4zm7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.wstk-moves__title[b-nvpi5y4zm7] {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rs-on-surface-variant);
}

.wstk-moves__empty[b-nvpi5y4zm7] {
    margin: 0;
    font-size: .82rem;
    color: var(--rs-on-surface-muted);
}

.wstk-moves__list[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 640px;
    overflow-y: auto;
}

.wstk-move[b-nvpi5y4zm7] {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: start;
    padding: 8px 0;
    border-top: 1px solid var(--rs-outline-variant);
}

.wstk-move:first-child[b-nvpi5y4zm7] { border-top: 0; }

.wstk-move__icon[b-nvpi5y4zm7] {
    font-size: 18px;
    color: var(--rs-on-surface-variant);
}

.wstk-move__text[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.wstk-move__what[b-nvpi5y4zm7] { font-size: .85rem; color: var(--rs-on-surface); }

.wstk-move__meta[b-nvpi5y4zm7] {
    font-size: .72rem;
    color: var(--rs-on-surface-muted);
    overflow-wrap: anywhere;
}

.wstk-move__delta[b-nvpi5y4zm7] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.wstk-move--in .wstk-move__delta[b-nvpi5y4zm7] { color: var(--rs-success); }
.wstk-move--out .wstk-move__delta[b-nvpi5y4zm7] { color: var(--rs-danger); }

.wstk-move__after[b-nvpi5y4zm7] {
    font-size: .7rem;
    font-weight: 400;
    color: var(--rs-on-surface-muted);
}

/* Por debajo de 720px cambia de forma: los movimientos bajan debajo de la lista (PREMISAS §9). */
@media (max-width: 720px) {
    .wstk-body[b-nvpi5y4zm7] { grid-template-columns: 1fr; }
    .wstk-row__state[b-nvpi5y4zm7] { margin-left: 0; }
    [b-nvpi5y4zm7] .wstk-search { width: 100%; }
}
/* /Pages/TrackLocation/TrackLocationAddDialog.razor.rz.scp.css */
/* ===== Contenedor principal ===== */
.location-dialog[b-mc51vvjj1t] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    overflow: hidden;
    box-sizing: border-box;
    width: 100%;
}

.location-dialog *[b-mc51vvjj1t],
.location-dialog *[b-mc51vvjj1t]::before,
.location-dialog *[b-mc51vvjj1t]::after {
    box-sizing: border-box;
}

/* ===== Cabecera visual ===== */
.location-header[b-mc51vvjj1t] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    border-radius: 14px;
    background: linear-gradient(135deg, #04070f 0%, #0b1626 50%, #1b3350 100%);
    border: 1px solid #1e293b;
}

.header-icon-ring[b-mc51vvjj1t] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(96, 165, 250, 0.15);
    border: 1px solid rgba(96, 165, 250, 0.3);
    flex: 0 0 auto;
}

.header-text[b-mc51vvjj1t] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.header-title[b-mc51vvjj1t] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--rs-on-surface-inverse);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.header-subtitle[b-mc51vvjj1t] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-muted);
}

/* ===== Formulario ===== */
.location-form[b-mc51vvjj1t] {
    padding: 0.25rem 0;
    overflow: hidden;
    max-width: 100%;
}

/* ===== Sección alias ===== */
.alias-section[b-mc51vvjj1t] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--rz-border-color);
    border-radius: 10px;
    background: var(--rz-background-color);
    overflow: hidden;
    max-width: 100%;
}

.alias-header[b-mc51vvjj1t] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.alias-title[b-mc51vvjj1t] {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--rz-text-color);
}

.alias-subtitle[b-mc51vvjj1t] {
    display: block;
    font-size: 0.78rem;
    color: var(--rz-text-secondary-color);
    margin-top: 0.1rem;
}

.alias-input-row[b-mc51vvjj1t] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

/* ===== Chips de alias ===== */
.alias-chips-area[b-mc51vvjj1t] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 38px;
    align-items: center;
}

.alias-chip[b-mc51vvjj1t] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 6px 5px 12px;
    border-radius: 999px;
    background: var(--rz-primary-lighter, var(--rs-violet-subtle));
    color: var(--rz-primary, var(--rs-primary-text));
    font-size: 0.82rem;
    font-weight: 500;
    border: 1px solid var(--rz-primary-light, #c4b5fd);
    transition: all 0.15s ease;
    line-height: 1;
}

.alias-chip:hover[b-mc51vvjj1t] {
    background: var(--rz-primary-light, #c4b5fd);
}

.alias-chip-text[b-mc51vvjj1t] {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alias-chip-remove[b-mc51vvjj1t] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.15s;
    color: var(--rz-primary, var(--rs-primary-text));
    opacity: 0.6;
}

.alias-chip-remove:hover[b-mc51vvjj1t] {
    background: var(--rs-shade);
    opacity: 1;
}

/* ===== Empty state ===== */
.alias-empty[b-mc51vvjj1t] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.8rem 1rem;
    border: 1px dashed var(--rz-border-color);
    border-radius: 8px;
    font-size: 0.8rem;
    color: var(--rz-text-disabled-color);
    background: transparent;
}

/* ===== Acciones (footer) ===== */
.location-actions[b-mc51vvjj1t] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rz-border-color);
}

/* ── Interruptor de ubicación interna ─────────────────────────────────────── */
.internal-row[b-mc51vvjj1t] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--rz-border-color, var(--rs-outline-variant));
    border-radius: 8px;
    background: var(--rz-base-background-color, var(--rs-surface));
}

.internal-text[b-mc51vvjj1t] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.internal-title[b-mc51vvjj1t] {
    font-weight: 600;
    font-size: 0.9rem;
}

.internal-subtitle[b-mc51vvjj1t] {
    font-size: 0.78rem;
    color: var(--rz-text-secondary-color, var(--rs-on-surface-variant));
}
/* /Pages/TrainControl/TrainCenterBar.razor.rz.scp.css */
/* Cabecera del cuaderno: centro a la izquierda, vistas del centro a la derecha. Va por encima
   de la barra propia de cada pantalla, así que se separa con una línea en vez de con un hueco:
   la idea es que se lea como "estoy dentro de este centro", no como otra barra de acciones. */

.tcb[b-l6io43d6y4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* La sociedad y los centros forman un bloque; las vistas quedan al otro extremo. */
    gap: 1rem;
    flex-wrap: wrap;
    padding-bottom: 0.7rem;
    margin-bottom: 0.9rem;
    border-bottom: 1px solid var(--rs-shade);
}

/* --- Filtro de sociedad -------------------------------------------------------------------- */

/* Deliberadamente más discreto que el selector de centro: es un filtro que casi siempre está
   en "Todas", no la navegación principal. Se lee como un prefijo del centro, no como su igual. */
.tcb-empresas[b-l6io43d6y4] {
    display: inline-flex;
    align-items: center;
    padding: 2px;
    border-radius: 8px;
    background: var(--rs-shade-subtle);
    margin-right: 0.6rem;
}

.tcb-empresa-btn[b-l6io43d6y4] {
    padding: 0.25rem 0.6rem;
    border: none;
    border-radius: 6px;
    background: transparent;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: inherit;
    opacity: 0.6;
    cursor: pointer;
}

.tcb-empresa-btn:hover[b-l6io43d6y4] {
    opacity: 0.9;
}

.tcb-empresa-btn--on[b-l6io43d6y4] {
    background: var(--rs-surface);
    opacity: 1;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

/* --- Selector de centro -------------------------------------------------------------------- */

.tcb-centros[b-l6io43d6y4] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.tcb-centro[b-l6io43d6y4] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--rs-shade);
    border-radius: 999px;
    background: transparent;
    font-size: 0.9rem;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.tcb-centro:hover[b-l6io43d6y4] {
    background: var(--rs-shade-subtle);
}

.tcb-centro--on[b-l6io43d6y4] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.tcb-centro-nombre[b-l6io43d6y4] {
    line-height: 1.2;
}

/* La sociedad explotadora acompaña al centro sin competir con él. */
.tcb-empresa[b-l6io43d6y4] {
    font-size: 0.68rem;
    font-weight: 500;
    opacity: 0.7;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

/* --- Vistas del centro --------------------------------------------------------------------- */

.tcb-vistas[b-l6io43d6y4] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    flex-wrap: wrap;
}

.tcb-vista[b-l6io43d6y4] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.4rem 0.7rem;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    color: inherit;
    opacity: 0.72;
    border-bottom: 2px solid transparent;
}

.tcb-vista:hover[b-l6io43d6y4] {
    background: var(--rs-shade-subtle);
    opacity: 1;
}

.tcb-vista--on[b-l6io43d6y4] {
    opacity: 1;
    font-weight: 600;
    border-bottom-color: var(--rs-primary);
    border-radius: 8px 8px 0 0;
}

@media (max-width: 720px) {
    .tcb[b-l6io43d6y4] {
        gap: 0.5rem;
    }

    /* En móvil el nombre de la vista sobra: el icono ya la identifica y así las cuatro caben. */
    .tcb-vista span[b-l6io43d6y4] {
        display: none;
    }
}

/* Aviso cuando el filtro de sociedad no deja pasar ningún centro. */
.tcb-vacio[b-l6io43d6y4] {
    font-size: 0.78rem;
    font-style: italic;
    opacity: 0.55;
    padding: 0 0.4rem;
}
/* /Pages/TrainControl/TrainCenterDialog.razor.rz.scp.css */
/* Casillas de vistas en dos columnas: casilla + etiqueta, para que el texto quede pegado a su
   control y no a la siguiente casilla. */

.tcd-vistas[b-0hegr8gybd] {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.45rem 0.6rem;
}
/* /Pages/TrainControl/TrainCentersConfig.razor.rz.scp.css */
/* Catálogo de centros: una tabla corta y de lectura, no una rejilla de trabajo. */

.cc-head[b-pvugg8itey] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.cc-tabla-wrap[b-pvugg8itey] {
    overflow-x: auto;
}

.cc-tabla[b-pvugg8itey] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.cc-tabla th[b-pvugg8itey] {
    text-align: left;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    opacity: 0.65;
    padding: 0.45rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade);
    white-space: nowrap;
}

.cc-tabla td[b-pvugg8itey] {
    padding: 0.55rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    vertical-align: middle;
}

/* Un centro desactivado sigue listado —su histórico existe— pero no compite visualmente. */
.cc-inactivo[b-pvugg8itey] {
    opacity: 0.5;
}

.cc-slug[b-pvugg8itey] {
    font-size: 0.72rem;
    opacity: 0.55;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.cc-tabla th.cc-num[b-pvugg8itey] {
    text-align: right;
}

.cc-tabla th.cc-centro-col[b-pvugg8itey] {
    text-align: center;
}

.cc-num[b-pvugg8itey] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.cc-centro-col[b-pvugg8itey] {
    text-align: center;
}

.cc-vacio[b-pvugg8itey] {
    opacity: 0.45;
    font-style: italic;
}

.cc-vista[b-pvugg8itey] {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    margin: 0 0.15rem 0.15rem 0;
    border-radius: 999px;
    background: rgba(99, 22, 86, 0.1);
    color: var(--rs-primary-text);
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.cc-acciones[b-pvugg8itey] {
    display: flex;
    gap: 0.2rem;
    justify-content: flex-end;
}
/* /Pages/TrainControl/TrainControlBilling.razor.rz.scp.css */
/* Valoración mensual del Control de Trenes. */

.cv-toolbar[b-ii512rx1sb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.9rem;
}

.cv-mes[b-ii512rx1sb] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.cv-mes-nombre[b-ii512rx1sb] {
    font-size: 1.05rem;
    font-weight: 700;
    min-width: 160px;
    text-align: center;
}

.cv-acciones[b-ii512rx1sb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* --- KPIs ---------------------------------------------------------------------------------- */

.cv-kpis[b-ii512rx1sb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.cv-kpi[b-ii512rx1sb] {
    flex: 1 1 180px;
    min-width: 180px;
    padding: 0.8rem 1rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.cv-kpi-valor[b-ii512rx1sb] {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.1;
}

.cv-kpi-de[b-ii512rx1sb] {
    font-size: 1rem;
    font-weight: 600;
    opacity: 0.55;
}

.cv-kpi-etiqueta[b-ii512rx1sb] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.65;
}

.cv-kpi--total[b-ii512rx1sb] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-color: transparent;
}

.cv-kpi--total .cv-kpi-etiqueta[b-ii512rx1sb] {
    opacity: 0.8;
}

.cv-forfait-aviso[b-ii512rx1sb] {
    color: var(--rs-warning);
    text-transform: none;
}

.cv-barra[b-ii512rx1sb] {
    height: 6px;
    border-radius: 999px;
    background: var(--rs-shade);
    margin: 0.35rem 0 0.25rem;
    overflow: hidden;
}

.cv-barra-relleno[b-ii512rx1sb] {
    height: 100%;
    border-radius: 999px;
    background: var(--rs-warning);
    transition: width 0.3s ease;
}

.cv-barra--ok[b-ii512rx1sb] {
    background: var(--rs-success);
}

/* --- Tabla por día ------------------------------------------------------------------------- */

.cv-tabla-wrap[b-ii512rx1sb] {
    overflow-x: auto;
    border: 1px solid var(--rs-shade);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.cv-tabla[b-ii512rx1sb] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.cv-tabla th[b-ii512rx1sb] {
    text-align: left;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.5rem 0.7rem;
    background: var(--rs-primary-subtle);
    border-bottom: 1px solid var(--rs-shade);
}

.cv-tabla td[b-ii512rx1sb] {
    padding: 0.4rem 0.7rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
}

.cv-tabla tbody tr:hover[b-ii512rx1sb] {
    background: var(--rs-primary-lighter);
}

.cv-tabla tfoot td[b-ii512rx1sb] {
    background: var(--rs-neutral-subtle);
    border-top: 2px solid var(--rs-shade);
}

/* La cabecera debe alinearse como su columna: `.cv-tabla th` es más específica que
   `.cv-num` y, sin esto, el título queda a la izquierda y las cifras a la derecha. */
.cv-tabla th.cv-num[b-ii512rx1sb] {
    text-align: right;
}

.cv-num[b-ii512rx1sb] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.cv-importe[b-ii512rx1sb] {
    font-weight: 600;
}
/* /Pages/TrainControl/TrainControlDiary.razor.rz.scp.css */
/* Diario de Control de Trenes — vista diaria con captura rápida al pie. El lenguaje visual
   sigue a Tráficos (KPIs, tabla compacta, edición en línea) para que la pantalla resulte
   familiar desde el primer día. */

.ct-toolbar[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.9rem;
}

.ct-fecha[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.ct-dia-semana[b-zzuir0wuvm] {
    font-size: 0.85rem;
    font-weight: 600;
    opacity: 0.7;
    margin-left: 0.35rem;
}

.ct-toolbar-acciones[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ct-pista[b-zzuir0wuvm] {
    font-size: 0.72rem;
    opacity: 0.6;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

/* --- KPIs ---------------------------------------------------------------------------------- */

.ct-kpis[b-zzuir0wuvm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ct-kpi[b-zzuir0wuvm] {
    flex: 1 1 130px;
    min-width: 130px;
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.ct-kpi-valor[b-zzuir0wuvm] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.ct-kpi-de[b-zzuir0wuvm] {
    font-size: 0.9rem;
    font-weight: 600;
    opacity: 0.55;
}

.ct-kpi-etiqueta[b-zzuir0wuvm] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.65;
}

.ct-kpi--alerta[b-zzuir0wuvm] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
}

.ct-kpi--alerta .ct-kpi-valor[b-zzuir0wuvm] {
    color: var(--rs-warning);
}

.ct-kpi--mes[b-zzuir0wuvm] {
    min-width: 170px;
}

.ct-barra[b-zzuir0wuvm] {
    height: 5px;
    border-radius: 999px;
    background: var(--rs-shade);
    margin: 0.3rem 0 0.2rem;
    overflow: hidden;
}

.ct-barra-relleno[b-zzuir0wuvm] {
    height: 100%;
    border-radius: 999px;
    background: var(--rs-warning);
    transition: width 0.3s ease;
}

.ct-barra--ok[b-zzuir0wuvm] {
    background: var(--rs-success);
}

/* --- Estado vacío -------------------------------------------------------------------------- */

.ct-vacio[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    padding: 0.9rem 1.1rem;
    margin-bottom: 0.9rem;
    border: 1px dashed var(--rs-shade-strong);
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
}

.ct-vacio-titulo[b-zzuir0wuvm] {
    font-weight: 700;
    font-size: 0.9rem;
}

.ct-vacio-texto[b-zzuir0wuvm] {
    font-size: 0.78rem;
    opacity: 0.7;
}

/* --- Tabla del día ------------------------------------------------------------------------- */

.ct-tabla-wrap[b-zzuir0wuvm] {
    overflow-x: auto;
    border: 1px solid var(--rs-shade);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.ct-tabla[b-zzuir0wuvm] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.ct-tabla th[b-zzuir0wuvm] {
    text-align: left;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.5rem 0.6rem;
    background: var(--rs-primary-subtle);
    border-bottom: 1px solid var(--rs-shade);
    white-space: nowrap;
}

.ct-tabla td[b-zzuir0wuvm] {
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    vertical-align: middle;
}

.ct-tabla tbody tr:hover[b-zzuir0wuvm] {
    background: var(--rs-primary-lighter);
}

.ct-tabla tr.ct-fila--editando[b-zzuir0wuvm],
.ct-tabla tr.ct-fila--editando:hover[b-zzuir0wuvm] {
    background: var(--rs-info-subtle);
}

/* Afordancia del doble clic (misma señal que en Tráficos). */
.ct-editable[b-zzuir0wuvm] {
    cursor: cell;
}

.ct-tren[b-zzuir0wuvm] {
    font-weight: 700;
    white-space: nowrap;
}

.ct-od[b-zzuir0wuvm] {
    white-space: nowrap;
}

.ct-flecha[b-zzuir0wuvm] {
    opacity: 0.45;
    margin: 0 0.25rem;
}

.ct-od-edit[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

/* Ver nota en TrainControlBilling: `.ct-tabla th` gana a las clases de alineado. */
.ct-tabla th.ct-num[b-zzuir0wuvm] {
    text-align: right;
}

.ct-tabla th.ct-hora[b-zzuir0wuvm] {
    text-align: center;
}

.ct-num[b-zzuir0wuvm] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.ct-hora[b-zzuir0wuvm] {
    text-align: center;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ct-importe[b-zzuir0wuvm] {
    font-weight: 700;
}

.ct-importe--cero[b-zzuir0wuvm] {
    font-weight: 400;
    opacity: 0.4;
}

.ct-obs[b-zzuir0wuvm] {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ct-vacio-celda[b-zzuir0wuvm] {
    opacity: 0.35;
}

.ct-retraso[b-zzuir0wuvm] {
    display: inline-block;
    margin-left: 0.3rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
    font-size: 0.68rem;
    font-weight: 700;
}

.ct-acciones-fila[b-zzuir0wuvm] {
    display: flex;
    gap: 0.2rem;
    justify-content: flex-end;
}

/* --- Chips --------------------------------------------------------------------------------- */

.ct-chip[b-zzuir0wuvm] {
    display: inline-block;
    padding: 0.08rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.ct-chip--tren[b-zzuir0wuvm] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.ct-chip--especial[b-zzuir0wuvm] {
    background: var(--rs-violet-subtle);
    color: var(--rs-on-violet-subtle);
}

.ct-chip--maniobra[b-zzuir0wuvm] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.ct-chip--ibe[b-zzuir0wuvm] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.ct-chip--uic[b-zzuir0wuvm] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.ct-chip--ok[b-zzuir0wuvm] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.ct-chip--neutro[b-zzuir0wuvm] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.ct-chip--aviso[b-zzuir0wuvm] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.ct-chip--mal[b-zzuir0wuvm] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

/* --- Fila de captura rápida ---------------------------------------------------------------- */

/* Panel de captura al estilo de los diálogos de reservas: campos con etiqueta e icono. */
.ct-capture[b-zzuir0wuvm] {
    margin-top: 0.9rem;
    border: 1px solid var(--rs-shade);
    border-left: 4px solid var(--rs-primary);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    padding: 0.8rem 1rem 0.9rem;
}

/* El panel "se enciende" mientras se escribe en él. */
.ct-capture:focus-within[b-zzuir0wuvm] {
    border-color: var(--rs-primary);
    box-shadow: 0 2px 10px rgba(31, 56, 100, 0.12);
}

.ct-capture-head[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    margin-bottom: 0.7rem;
}

.ct-capture-title[b-zzuir0wuvm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    color: var(--rs-primary-text);
}

.ct-capture-hint[b-zzuir0wuvm] {
    font-size: 0.72rem;
    opacity: 0.55;
    margin-left: auto;
}

.ct-capture-grid[b-zzuir0wuvm] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 0.6rem 0.7rem;
    align-items: start;
}

/* El trayecto es el campo protagonista: dos columnas. */
.ct-cap-route[b-zzuir0wuvm] {
    grid-column: span 2;
    min-width: 0;
}

/* Observaciones a todo el ancho: es donde se escriben composiciones y referencias largas. */
.ct-cap-obs[b-zzuir0wuvm] {
    grid-column: 1 / -1;
}

.ct-capture-times[b-zzuir0wuvm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px dashed var(--rs-shade);
}

.ct-capture-times label[b-zzuir0wuvm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    opacity: 0.8;
}

.ct-capture-actions[b-zzuir0wuvm] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.9rem;
    margin-top: 0.7rem;
}

.ct-capture-importe[b-zzuir0wuvm] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 700px) {
    .ct-cap-route[b-zzuir0wuvm],
    .ct-cap-obs[b-zzuir0wuvm] {
        grid-column: span 1;
    }
}

.ct-in[b-zzuir0wuvm] {
    width: 100%;
}

.ct-in-num[b-zzuir0wuvm] {
    width: 58px;
}

.ct-in-time[b-zzuir0wuvm] {
    width: 84px;
    font-size: 0.78rem;
    padding: 0.2rem 0.25rem;
    border: 1px solid var(--rs-shade-strong);
    border-radius: 5px;
    background: var(--rs-surface);
}

@media (max-width: 900px) {
    .ct-toolbar[b-zzuir0wuvm] {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Columna del asa de arrastre: estrecha y sin holgura, que solo lleva el icono. */
.ct-tabla th.ct-mano-col[b-zzuir0wuvm],
.ct-tabla td.ct-mano-col[b-zzuir0wuvm] {
    width: 28px;
    padding-left: 0.3rem;
    padding-right: 0;
}
/* /Pages/TrainControl/TrainControlImport.razor.rz.scp.css */
.ci-upload[b-9zf3cykjzx] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    border: 1px dashed var(--rs-shade-strong);
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
}

.ci-file[b-9zf3cykjzx] {
    font-size: 0.8rem;
    font-weight: 600;
    opacity: 0.75;
}

.ci-sheet[b-9zf3cykjzx] {
    border: 1px solid var(--rs-shade);
    border-radius: 10px;
    padding: 0.7rem 0.9rem;
    background: var(--rs-surface);
}

.ci-sheet-head[b-9zf3cykjzx] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.ci-nf[b-9zf3cykjzx] {
    font-size: 0.75rem;
    color: var(--rs-warning);
}

.ci-stats[b-9zf3cykjzx] {
    font-size: 0.78rem;
    opacity: 0.75;
}

.ci-meses[b-9zf3cykjzx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.45rem;
}

.ci-mes[b-9zf3cykjzx] {
    font-size: 0.72rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--rs-primary-subtle);
}

.ci-avisos[b-9zf3cykjzx] {
    margin-top: 0.45rem;
    font-size: 0.78rem;
}

.ci-avisos summary[b-9zf3cykjzx] {
    cursor: pointer;
    color: var(--rs-warning);
    font-weight: 600;
}

.ci-avisos ul[b-9zf3cykjzx] {
    margin: 0.3rem 0 0 1rem;
    padding: 0;
}
/* /Pages/TrainControl/TrainCreateRouteDialog.razor.rz.scp.css */
.crd-resumen[b-xbptdrtps0] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: var(--rs-primary-subtle);
    font-weight: 700;
}

.crd-punto[b-xbptdrtps0] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.crd-nueva[b-xbptdrtps0] {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}
/* /Pages/TrainControl/TrainDuplicateDayDialog.razor.rz.scp.css */
.ctd-tabla-wrap[b-ikp7d69a7k] {
    overflow-x: auto;
}

.ctd-tabla[b-ikp7d69a7k] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.ctd-tabla th[b-ikp7d69a7k] {
    text-align: left;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.4rem 0.5rem;
    background: var(--rs-primary-subtle);
    border-bottom: 1px solid var(--rs-shade);
}

.ctd-tabla td[b-ikp7d69a7k] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    cursor: pointer;
}

.ctd-fila--off[b-ikp7d69a7k] {
    opacity: 0.4;
}
/* /Pages/TrainControl/TrainEfPicker.razor.rz.scp.css */
/* Selector de EF: desplegable de lista cerrada. */

.efp-in[b-6yri0nd1gx] {
    width: 100%;
    min-width: 100px;
}
/* /Pages/TrainControl/TrainExpeditionsIndex.razor.rz.scp.css */
/* Expediciones semanales del Control de Trenes. */

.ce-toolbar[b-ccoz0quovm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.9rem;
}

.ce-semana[b-ccoz0quovm] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.ce-semana-nombre[b-ccoz0quovm] {
    font-size: 1rem;
    font-weight: 700;
    min-width: 96px;
    text-align: center;
}

.ce-chips[b-ccoz0quovm] {
    display: flex;
    gap: 0.35rem;
}

.ce-scope[b-ccoz0quovm] {
    border: 1px solid var(--rs-shade);
    background: var(--rs-surface);
    border-radius: 999px;
    padding: 0.25rem 0.8rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.ce-scope--on[b-ccoz0quovm] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.ce-acciones[b-ccoz0quovm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ce-pista[b-ccoz0quovm] {
    font-size: 0.72rem;
    opacity: 0.6;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

/* --- KPIs ---------------------------------------------------------------------------------- */

.ce-kpis[b-ccoz0quovm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ce-kpi[b-ccoz0quovm] {
    flex: 1 1 150px;
    min-width: 150px;
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.ce-kpi-valor[b-ccoz0quovm] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.ce-kpi-etiqueta[b-ccoz0quovm] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.65;
}

.ce-kpi--alerta[b-ccoz0quovm] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
}

.ce-kpi--alerta .ce-kpi-valor[b-ccoz0quovm] {
    color: var(--rs-warning);
}

/* --- Tabla --------------------------------------------------------------------------------- */

.ce-tabla-wrap[b-ccoz0quovm] {
    overflow-x: auto;
    border: 1px solid var(--rs-shade);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.ce-tabla[b-ccoz0quovm] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.ce-tabla th[b-ccoz0quovm] {
    text-align: left;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.5rem 0.6rem;
    background: var(--rs-primary-subtle);
    border-bottom: 1px solid var(--rs-shade);
    white-space: nowrap;
}

.ce-tabla td[b-ccoz0quovm] {
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    vertical-align: middle;
}

.ce-tabla tbody tr:hover[b-ccoz0quovm] {
    background: var(--rs-primary-lighter);
}

.ce-tabla tr.ce-fila--editando[b-ccoz0quovm],
.ce-tabla tr.ce-fila--editando:hover[b-ccoz0quovm] {
    background: var(--rs-info-subtle);
}

.ce-editable[b-ccoz0quovm] {
    cursor: cell;
}

.ce-od[b-ccoz0quovm] {
    white-space: nowrap;
}

.ce-flecha[b-ccoz0quovm] {
    opacity: 0.45;
    margin: 0 0.25rem;
}

.ce-od-edit[b-ccoz0quovm] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

.ce-tabla th.ce-num[b-ccoz0quovm] {
    text-align: right;
}

.ce-tabla th.ce-centro[b-ccoz0quovm] {
    text-align: center;
}

.ce-num[b-ccoz0quovm] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.ce-centro[b-ccoz0quovm] {
    text-align: center;
}

.ce-obs[b-ccoz0quovm] {
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ce-retraso[b-ccoz0quovm] {
    color: var(--rs-warning);
    font-weight: 700;
}

.ce-acciones-fila[b-ccoz0quovm] {
    display: flex;
    gap: 0.25rem;
    justify-content: flex-end;
    white-space: nowrap;
}

/* --- Chips de estado ----------------------------------------------------------------------- */

.ce-chip[b-ccoz0quovm] {
    display: inline-block;
    padding: 0.08rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.ce-chip--plan[b-ccoz0quovm] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.ce-chip--transito[b-ccoz0quovm] {
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
}

.ce-chip--llegada[b-ccoz0quovm] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.ce-chip--descargada[b-ccoz0quovm] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

/* --- Fila de captura rápida ---------------------------------------------------------------- */

/* Panel de captura al estilo de los diálogos de reservas: campos con etiqueta e icono. */
.ce-capture[b-ccoz0quovm] {
    margin-top: 0.9rem;
    border: 1px solid var(--rs-shade);
    border-left: 4px solid var(--rs-primary);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    padding: 0.8rem 1rem 0.9rem;
}

.ce-capture:focus-within[b-ccoz0quovm] {
    border-color: var(--rs-primary);
    box-shadow: 0 2px 10px rgba(31, 56, 100, 0.12);
}

.ce-capture-head[b-ccoz0quovm] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    margin-bottom: 0.7rem;
}

.ce-capture-title[b-ccoz0quovm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    color: var(--rs-primary-text);
}

.ce-capture-hint[b-ccoz0quovm] {
    font-size: 0.72rem;
    opacity: 0.55;
    margin-left: auto;
}

.ce-capture-grid[b-ccoz0quovm] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.6rem 0.7rem;
    align-items: start;
}

.ce-cap-route[b-ccoz0quovm] {
    grid-column: span 2;
    min-width: 0;
}

/* Observaciones a todo el ancho: es donde se escriben las explicaciones largas. */
.ce-cap-obs[b-ccoz0quovm] {
    grid-column: 1 / -1;
}

.ce-capture-actions[b-ccoz0quovm] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.7rem;
}

@media (max-width: 700px) {
    .ce-cap-route[b-ccoz0quovm],
    .ce-cap-obs[b-ccoz0quovm] {
        grid-column: span 1;
    }
}

.ce-in[b-ccoz0quovm] {
    width: 100%;
}

.ce-in-num[b-ccoz0quovm] {
    width: 56px;
}

.ce-in-date[b-ccoz0quovm] {
    width: 118px;
    font-size: 0.78rem;
    padding: 0.2rem 0.25rem;
    border: 1px solid var(--rs-shade-strong);
    border-radius: 5px;
    background: var(--rs-surface);
}

/* Columna del asa de arrastre: estrecha y sin holgura, que solo lleva el icono. */
.ce-tabla th.ce-mano-col[b-ccoz0quovm],
.ce-tabla td.ce-mano-col[b-ccoz0quovm] {
    width: 28px;
    padding-left: 0.3rem;
    padding-right: 0;
}
/* /Pages/TrainControl/TrainExtraShuntsIndex.razor.rz.scp.css */
/* Maniobras extras: mismo lenguaje visual que el diario y las expediciones (KPIs arriba, tabla
   compacta con edición en línea, panel de captura al pie), más un bloque de conciliación que
   agrupa por factura de ADIF. */

.cm-toolbar[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.9rem;
}

.cm-mes[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.cm-mes-nombre[b-c1lpjcx5nu] {
    min-width: 130px;
    text-align: center;
    font-weight: 600;
}

.cm-acciones[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.cm-pista[b-c1lpjcx5nu] {
    font-size: 0.72rem;
    opacity: 0.6;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

/* --- KPIs ---------------------------------------------------------------------------------- */

.cm-kpis[b-c1lpjcx5nu] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.cm-kpi[b-c1lpjcx5nu] {
    flex: 1 1 140px;
    min-width: 140px;
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.cm-kpi--alerta[b-c1lpjcx5nu] {
    background: var(--rs-danger-subtle);
    border-color: var(--rs-danger-subtle);
}

.cm-kpi-valor[b-c1lpjcx5nu] {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.1;
}

.cm-kpi-etiqueta[b-c1lpjcx5nu] {
    font-size: 0.72rem;
    opacity: 0.65;
    margin-top: 0.2rem;
}

.cm-desvio[b-c1lpjcx5nu] {
    font-weight: 700;
    color: var(--rs-on-danger-subtle);
    margin-left: 0.3rem;
}

/* --- Tabla --------------------------------------------------------------------------------- */

.cm-tabla-wrap[b-c1lpjcx5nu] {
    overflow-x: auto;
}

.cm-tabla[b-c1lpjcx5nu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.cm-tabla th[b-c1lpjcx5nu] {
    text-align: left;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    opacity: 0.65;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade);
    white-space: nowrap;
}

.cm-tabla td[b-c1lpjcx5nu] {
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    vertical-align: top;
}

.cm-editable:hover[b-c1lpjcx5nu] {
    background: var(--rs-shade-subtle);
}

.cm-fila--editando[b-c1lpjcx5nu] {
    background: var(--rs-info-subtle);
}

.cm-tabla th.cm-num[b-c1lpjcx5nu],
.cm-concil-tabla th.cm-num[b-c1lpjcx5nu] {
    text-align: right;
}

.cm-num[b-c1lpjcx5nu] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* El detalle es texto libre largo: se deja fluir en dos líneas antes de recortar. */
.cm-detalle[b-c1lpjcx5nu] {
    max-width: 420px;
    line-height: 1.35;
}

.cm-obs[b-c1lpjcx5nu] {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cm-factura[b-c1lpjcx5nu] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cm-vacio[b-c1lpjcx5nu] {
    opacity: 0.4;
}

.cm-exp[b-c1lpjcx5nu] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.05rem 0.35rem;
    border-radius: 4px;
    background: rgba(99, 22, 86, 0.1);
    color: var(--rs-primary-text);
    font-size: 0.68rem;
    font-weight: 600;
    white-space: nowrap;
}

.cm-imput[b-c1lpjcx5nu] {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--rs-shade-subtle);
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.cm-in[b-c1lpjcx5nu] {
    font-size: 0.82rem;
}

.cm-in-num[b-c1lpjcx5nu] {
    width: 72px;
}

.cm-obs-edit[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.cm-acciones-fila[b-c1lpjcx5nu] {
    display: flex;
    gap: 0.2rem;
    justify-content: flex-end;
}

/* --- Chips de estado ----------------------------------------------------------------------- */

.cm-chip[b-c1lpjcx5nu] {
    display: inline-block;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.cm-chip + .cm-chip[b-c1lpjcx5nu] {
    margin-left: 0.25rem;
}

.cm-chip--pend[b-c1lpjcx5nu] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.cm-chip--reg[b-c1lpjcx5nu] {
    background: var(--rs-indigo-subtle);
    color: var(--rs-on-indigo-subtle);
}

.cm-chip--fact[b-c1lpjcx5nu] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

.cm-chip--disputa[b-c1lpjcx5nu] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.cm-chip--desvio[b-c1lpjcx5nu] {
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

.cm-chip--ok[b-c1lpjcx5nu] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}

/* --- Conciliación por factura -------------------------------------------------------------- */

.cm-concil[b-c1lpjcx5nu] {
    margin-top: 1.1rem;
    padding: 0.9rem 1rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.cm-concil-titulo[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.6rem;
}

.cm-concil-tabla[b-c1lpjcx5nu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.cm-concil-tabla th[b-c1lpjcx5nu] {
    text-align: left;
    font-size: 0.7rem;
    text-transform: uppercase;
    opacity: 0.6;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade);
}

.cm-concil-tabla td[b-c1lpjcx5nu] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
}

.cm-imputaciones[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
    margin-top: 0.7rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--rs-shade-subtle);
}

.cm-imputaciones-label[b-c1lpjcx5nu] {
    font-size: 0.72rem;
    text-transform: uppercase;
    opacity: 0.6;
    margin-right: 0.2rem;
}

.cm-imput-chip[b-c1lpjcx5nu] {
    display: inline-flex;
    gap: 0.3rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-shade);
    font-size: 0.74rem;
}

/* --- Panel de captura ---------------------------------------------------------------------- */

.cm-capture[b-c1lpjcx5nu] {
    margin-top: 1.1rem;
    padding: 0.9rem 1rem 1rem;
    border-radius: 10px;
    border: 1px dashed var(--rs-shade-strong);
    background: var(--rs-shade-subtle);
}

.cm-capture-head[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.8rem;
}

.cm-capture-title[b-c1lpjcx5nu] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    font-size: 0.92rem;
}

.cm-capture-hint[b-c1lpjcx5nu] {
    font-size: 0.72rem;
    opacity: 0.6;
}

.cm-capture-grid[b-c1lpjcx5nu] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.7rem;
}

/* El detalle y las observaciones ocupan la fila entera: son los campos donde de verdad se
   escribe, y en una celda estrecha no se lee lo que se acaba de teclear. */
.cm-cap-detalle[b-c1lpjcx5nu],
.cm-cap-obs[b-c1lpjcx5nu] {
    grid-column: 1 / -1;
}

.cm-capture-actions[b-c1lpjcx5nu] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.8rem;
}

/* Columna del asa de arrastre: estrecha y sin holgura, que solo lleva el icono. */
.cm-tabla th.cm-mano-col[b-c1lpjcx5nu],
.cm-tabla td.cm-mano-col[b-c1lpjcx5nu] {
    width: 28px;
    padding-left: 0.3rem;
    padding-right: 0;
}
/* /Pages/TrainControl/TrainNumbersConfig.razor.rz.scp.css */
/* Configuración del Control de Trenes: catálogo de números y tarifas. */

.cf-tabla-wrap[b-jms3jofz6m] {
    overflow-x: auto;
    border: 1px solid var(--rs-shade);
    border-radius: 12px;
    background: var(--rs-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.cf-tabla[b-jms3jofz6m] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.cf-tabla th[b-jms3jofz6m] {
    text-align: left;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.5rem 0.6rem;
    background: var(--rs-primary-subtle);
    border-bottom: 1px solid var(--rs-shade);
    white-space: nowrap;
}

.cf-tabla td[b-jms3jofz6m] {
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--rs-shade-subtle);
    vertical-align: middle;
}

.cf-tabla tbody tr:hover[b-jms3jofz6m] {
    background: var(--rs-primary-lighter);
}

.cf-tabla tr.cf-fila--editando[b-jms3jofz6m],
.cf-tabla tr.cf-fila--editando:hover[b-jms3jofz6m] {
    background: var(--rs-info-subtle);
}

.cf-editable[b-jms3jofz6m] {
    cursor: cell;
}

.cf-codigo[b-jms3jofz6m] {
    font-weight: 700;
}

.cf-off[b-jms3jofz6m] {
    opacity: 0.45;
    text-decoration: line-through;
}

.cf-tabla th.cf-num[b-jms3jofz6m] {
    text-align: right;
}

.cf-tabla th.cf-centro[b-jms3jofz6m] {
    text-align: center;
}

.cf-num[b-jms3jofz6m] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.cf-centro[b-jms3jofz6m] {
    text-align: center;
}

.cf-obs[b-jms3jofz6m] {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cf-acciones-fila[b-jms3jofz6m] {
    display: flex;
    gap: 0.2rem;
    justify-content: flex-end;
}

.cf-qa td[b-jms3jofz6m] {
    background: var(--rs-primary-subtle);
    border-top: 2px solid var(--rs-primary);
    padding: 0.45rem 0.5rem;
}

/* La fila de captura "se enciende" mientras se escribe en ella. */
.cf-qa:focus-within td[b-jms3jofz6m] {
    background: var(--rs-info-subtle);
}

.cf-in[b-jms3jofz6m] {
    width: 100%;
}

.cf-in-num[b-jms3jofz6m] {
    width: 58px;
}

.cf-tarifa--vigente td[b-jms3jofz6m] {
    background: var(--rs-success-subtle);
}

.cf-chip-vigente[b-jms3jofz6m] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
    font-size: 0.65rem;
    font-weight: 700;
}
/* /Pages/TrainControl/TrainRoutePicker.razor.rz.scp.css */
.rtp[b-o2fj9prfv6] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

/* Variante Labeled (paneles de captura, estilo reservas): los FormFields mandan y el toggle
   de modo va pegado a su derecha. */
.rtp-labeled[b-o2fj9prfv6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.rtp-labeled[b-o2fj9prfv6]  .rz-form-field {
    flex: 1 1 0;
}

.rtp-toggle--labeled[b-o2fj9prfv6] {
    width: 30px;
    height: 30px;
    align-self: center;
}

.rtp-in[b-o2fj9prfv6] {
    width: 120px;
}

.rtp-dd[b-o2fj9prfv6] {
    min-width: 230px;
    width: 100%;
}

.rtp-flecha[b-o2fj9prfv6] {
    opacity: 0.45;
}

.rtp-toggle[b-o2fj9prfv6] {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    border: 1px solid var(--rs-shade);
    background: var(--rs-surface);
    color: inherit;
    opacity: 0.65;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.rtp-toggle:hover[b-o2fj9prfv6] {
    opacity: 1;
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
}

.rtp-crear[b-o2fj9prfv6] {
    flex: 0 0 auto;
    border: 1px dashed var(--rs-primary);
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-radius: 999px;
    padding: 0.12rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.rtp-crear:hover[b-o2fj9prfv6] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-style: solid;
}

/* --- Presentación de los trayectos --------------------------------------------------------- */
/* Los estilos de los items del popup viven en wwwroot/css/train-control.css: Radzen recoloca
   el panel en el <body> al abrirlo y el CSS aislado no llega. Aquí solo queda el valor
   seleccionado, que sí se renderiza dentro del componente. */

.rtp-value[b-o2fj9prfv6] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.rtp-value .rtp-item-loc[b-o2fj9prfv6] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rtp-value[b-o2fj9prfv6]  .rtp-item-arrow {
    font-size: 0.85rem !important;
    opacity: 0.4;
    flex: 0 0 auto;
}

.rtp-value-km[b-o2fj9prfv6] {
    font-size: 0.74rem;
    opacity: 0.55;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
/* /Pages/Users/AvatarEditorDialog.razor.rz.scp.css */
/* ============================================
   AvatarEditorDialog — Scoped CSS
   ============================================ */

.avatar-dialog[b-dl95wt5kwy] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 0.25rem 0 0;
}

/* ===== VISTA PREVIA ===== */
.avatar-hero[b-dl95wt5kwy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.avatar-hero-ring[b-dl95wt5kwy] {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.avatar-hero-img[b-dl95wt5kwy] {
    width: 112px;
    height: 112px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.avatar-hero-caption[b-dl95wt5kwy] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-variant);
    text-align: center;
}

/* ===== ZONA DE SUBIDA ===== */
.avatar-drop[b-dl95wt5kwy] {
    position: relative;
    border: 2px dashed var(--rs-outline);
    border-radius: 12px;
    background: var(--rs-surface-container-low);
    padding: 1.25rem 1rem;
    text-align: center;
    transition: border-color 0.15s, background 0.15s;
}

.avatar-drop:hover[b-dl95wt5kwy] {
    border-color: var(--rs-primary);
    background: var(--rs-surface);
}

.avatar-drop--over[b-dl95wt5kwy] {
    border-color: var(--rs-primary);
    background: var(--rs-surface-container-low);
}

/* El input cubre toda la zona en transparente: así el mismo bloque acepta el clic y el
   arrastrar-soltar nativo del navegador, sin JS. */
.avatar-drop-input[b-dl95wt5kwy] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.avatar-drop-input:disabled[b-dl95wt5kwy] {
    cursor: default;
}

.avatar-drop-icon[b-dl95wt5kwy] {
    font-size: 32px;
    color: var(--rs-primary-text);
    display: block;
    margin-bottom: 0.35rem;
}

.avatar-drop-text[b-dl95wt5kwy] {
    font-size: 0.9rem;
    color: var(--rs-on-surface);
}

.avatar-drop-hint[b-dl95wt5kwy] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
    margin-top: 0.25rem;
}

/* ===== FICHERO ELEGIDO ===== */
.avatar-file-chip[b-dl95wt5kwy] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--rs-primary-text);
}

.avatar-file-icon[b-dl95wt5kwy] {
    font-size: 18px;
}

.avatar-file-name[b-dl95wt5kwy] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.avatar-file-remove[b-dl95wt5kwy] {
    border: none;
    background: none;
    color: var(--rs-primary-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    padding: 2px;
    border-radius: 4px;
}

.avatar-file-remove:hover[b-dl95wt5kwy] {
    background: rgba(99, 22, 86, 0.1);
}

.avatar-file-remove .material-icons-round[b-dl95wt5kwy] {
    font-size: 16px;
}

/* ===== GALERÍA ===== */
.avatar-gallery-title[b-dl95wt5kwy] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 0.6rem;
}

.avatar-gallery[b-dl95wt5kwy] {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 0.5rem;
}

.avatar-gallery-item[b-dl95wt5kwy] {
    position: relative;
    aspect-ratio: 1;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 12px;
    background: none;
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.15s, transform 0.15s;
}

.avatar-gallery-item:hover:not(:disabled)[b-dl95wt5kwy] {
    transform: translateY(-2px);
    border-color: var(--rs-outline);
}

.avatar-gallery-item.is-selected[b-dl95wt5kwy] {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 2px rgba(99, 22, 86, 0.18);
}

.avatar-gallery-item img[b-dl95wt5kwy] {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 9px;
}

.avatar-gallery-item:disabled[b-dl95wt5kwy] {
    opacity: 0.55;
    cursor: default;
}

.avatar-gallery-check[b-dl95wt5kwy] {
    position: absolute;
    right: -2px;
    bottom: -2px;
    font-size: 16px;
    color: var(--rs-primary-text);
    background: var(--rs-surface);
    border-radius: 50%;
    line-height: 1;
}

/* ===== PIE ===== */
.avatar-dialog-footer[b-dl95wt5kwy] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.avatar-footer-spacer[b-dl95wt5kwy] {
    flex: 1;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 560px) {
    .avatar-gallery[b-dl95wt5kwy] {
        grid-template-columns: repeat(4, 1fr);
    }

    .avatar-dialog-footer[b-dl95wt5kwy] {
        flex-wrap: wrap;
    }
}
/* /Pages/Users/CreateUserDialog.razor.rz.scp.css */
/* ============================================
   CreateUserDialog — Scoped CSS
   ============================================ */

.dialog-container[b-5zzaurhtyv] {
    padding: 0.5rem 0;
}

/* ===== SECTIONS ===== */
.dialog-section[b-5zzaurhtyv] {
    margin-bottom: 1.5rem;
}

.role-hint[b-5zzaurhtyv] {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
}

.admin-role-notice[b-5zzaurhtyv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: var(--rs-violet-subtle);
    color: var(--rs-on-violet-subtle);
    font-size: 0.9rem;
}

.dialog-section-header[b-5zzaurhtyv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.dialog-section-icon[b-5zzaurhtyv] {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.section-icon-person[b-5zzaurhtyv] { background: var(--rs-primary-subtle); color: var(--rs-primary-text); }
.section-icon-lock[b-5zzaurhtyv]   { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.section-icon-shield[b-5zzaurhtyv] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }

.dialog-section-title[b-5zzaurhtyv] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* ===== ROLE CARDS ===== */
.role-cards[b-5zzaurhtyv] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}

.role-card[b-5zzaurhtyv] {
    border: 2px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.875rem;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    text-align: center;
    background: var(--rs-surface);
    user-select: none;
}

.role-card:hover[b-5zzaurhtyv] {
    border-color: var(--rs-outline);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.role-card.selected[b-5zzaurhtyv] {
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.role-card.selected.gestor[b-5zzaurhtyv] {
    border-color: var(--rs-cyan);
    background: var(--rs-cyan-subtle);
}

.role-card.selected.operador[b-5zzaurhtyv] {
    border-color: var(--rs-success);
    background: var(--rs-success-subtle);
}

.role-card.selected.usuario[b-5zzaurhtyv] {
    border-color: var(--rs-indigo);
    background: var(--rs-indigo-subtle);
}

.role-card.selected.visor[b-5zzaurhtyv] {
    border-color: #52525b;
    background: var(--rs-surface-container);
}

.role-card.selected.eem[b-5zzaurhtyv] {
    border-color: var(--rs-warning);
    background: var(--rs-warning-subtle);
}

.role-card.selected.eem .role-card-icon[b-5zzaurhtyv] {
    background: var(--rs-warning);
    color: var(--rs-on-primary);
}

/* Selector de ámbito (empresa ferroviaria / taller) */
.scope-field[b-5zzaurhtyv] {
    margin-top: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.scope-hint[b-5zzaurhtyv] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
}

.role-card-icon[b-5zzaurhtyv] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    transition: all 0.2s ease;
}

.role-card .role-card-icon[b-5zzaurhtyv] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-muted);
}

.role-card.selected.gestor .role-card-icon[b-5zzaurhtyv] {
    background: var(--rs-cyan);
    color: var(--rs-on-primary);
}

.role-card.selected.operador .role-card-icon[b-5zzaurhtyv] {
    background: var(--rs-success);
    color: var(--rs-on-primary);
}

.role-card.selected.usuario .role-card-icon[b-5zzaurhtyv] {
    background: var(--rs-indigo);
    color: var(--rs-on-primary);
}

.role-card.selected.visor .role-card-icon[b-5zzaurhtyv] {
    background: #52525b;
    color: var(--rs-on-primary);
}

.role-card-name[b-5zzaurhtyv] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.role-card-desc[b-5zzaurhtyv] {
    font-size: 0.68rem;
    color: var(--rs-on-surface-muted);
    line-height: 1.3;
}

/* ===== PASSWORD STRENGTH ===== */
.password-strength-bar[b-5zzaurhtyv] {
    height: 3px;
    border-radius: 3px;
    background: var(--rs-surface-container-high);
    margin-top: 4px;
    overflow: hidden;
}

.password-strength-fill[b-5zzaurhtyv] {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease, background 0.3s ease;
}

.strength-weak[b-5zzaurhtyv]   { width: 25%; background: var(--rs-danger); }
.strength-fair[b-5zzaurhtyv]   { width: 50%; background: var(--rs-warning); }
.strength-good[b-5zzaurhtyv]   { width: 75%; background: var(--rs-success); }
.strength-strong[b-5zzaurhtyv] { width: 100%; background: var(--rs-success); }

.strength-label[b-5zzaurhtyv] {
    font-size: 0.65rem;
    margin-top: 2px;
    font-weight: 500;
}

.strength-label.weak[b-5zzaurhtyv]   { color: var(--rs-danger); }
.strength-label.fair[b-5zzaurhtyv]   { color: var(--rs-warning); }
.strength-label.good[b-5zzaurhtyv]   { color: var(--rs-success); }
.strength-label.strong[b-5zzaurhtyv] { color: var(--rs-success); }

/* ===== ERROR ALERT ===== */
.error-alert[b-5zzaurhtyv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--rs-danger-subtle);
    border: 1px solid var(--rs-danger-subtle);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    margin-top: 1rem;
    color: var(--rs-on-danger-subtle);
    font-size: 0.8rem;
    font-weight: 500;
    animation: shake-b-5zzaurhtyv 0.3s ease;
}

@keyframes shake-b-5zzaurhtyv {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

.error-alert-icon[b-5zzaurhtyv] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ===== FOOTER ===== */
.dialog-footer[b-5zzaurhtyv] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rs-outline-variant);
    margin-top: 0.5rem;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .role-cards[b-5zzaurhtyv] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Users/EditUserDialog.razor.rz.scp.css */
/* ============================================
   EditUserDialog — Scoped CSS
   ============================================ */

.dialog-container[b-35i9akr7jq] {
    padding: 0.5rem 0;
}

.role-hint[b-35i9akr7jq] {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: var(--rs-on-surface-variant);
}

.admin-role-notice[b-35i9akr7jq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: var(--rs-violet-subtle);
    color: var(--rs-on-violet-subtle);
    font-size: 0.9rem;
}

/* ===== USER HEADER ===== */
.dialog-user-header[b-35i9akr7jq] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding: 0.875rem 1rem;
    background: var(--rs-surface-container-low);
    border-radius: 10px;
    border: 1px solid var(--rs-outline-variant);
}

.dialog-user-avatar[b-35i9akr7jq] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rs-primary, #631656), var(--rs-primary-light, #8b3d7c));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rs-on-primary);
    font-weight: 700;
    font-size: 1rem;
    flex-shrink: 0;
}

.dialog-user-info[b-35i9akr7jq] {
    display: flex;
    flex-direction: column;
}

.dialog-user-name[b-35i9akr7jq] {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--rs-on-surface);
}

.dialog-user-email[b-35i9akr7jq] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-muted);
}

/* ===== SECTIONS ===== */
.dialog-section[b-35i9akr7jq] {
    margin-bottom: 1.5rem;
}

.dialog-section-header[b-35i9akr7jq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.dialog-section-icon[b-35i9akr7jq] {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.section-icon-person[b-35i9akr7jq] { background: var(--rs-primary-subtle); color: var(--rs-primary-text); }
.section-icon-lock[b-35i9akr7jq]   { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.section-icon-shield[b-35i9akr7jq] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }

.dialog-section-title[b-35i9akr7jq] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* ===== ROLE CARDS ===== */
.role-cards[b-35i9akr7jq] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}

.role-card[b-35i9akr7jq] {
    border: 2px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.875rem;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    text-align: center;
    background: var(--rs-surface);
    user-select: none;
}

.role-card:hover[b-35i9akr7jq] {
    border-color: var(--rs-outline);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.role-card.selected[b-35i9akr7jq] {
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.role-card.selected.gestor[b-35i9akr7jq]   { border-color: var(--rs-cyan); background: var(--rs-cyan-subtle); }
.role-card.selected.operador[b-35i9akr7jq] { border-color: var(--rs-success); background: var(--rs-success-subtle); }
.role-card.selected.usuario[b-35i9akr7jq]  { border-color: var(--rs-indigo); background: var(--rs-indigo-subtle); }
.role-card.selected.visor[b-35i9akr7jq]    { border-color: #52525b; background: var(--rs-surface-container); }
.role-card.selected.eem[b-35i9akr7jq]      { border-color: var(--rs-warning); background: var(--rs-warning-subtle); }

.role-card-icon[b-35i9akr7jq] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    transition: all 0.2s ease;
}

.role-card .role-card-icon[b-35i9akr7jq]                   { background: var(--rs-surface-container); color: var(--rs-on-surface-muted); }
.role-card.selected.gestor .role-card-icon[b-35i9akr7jq]   { background: var(--rs-cyan); color: var(--rs-on-primary); }
.role-card.selected.operador .role-card-icon[b-35i9akr7jq] { background: var(--rs-success); color: var(--rs-on-primary); }
.role-card.selected.usuario .role-card-icon[b-35i9akr7jq]  { background: var(--rs-indigo); color: var(--rs-on-primary); }
.role-card.selected.visor .role-card-icon[b-35i9akr7jq]    { background: #52525b; color: var(--rs-on-primary); }
.role-card.selected.eem .role-card-icon[b-35i9akr7jq]      { background: var(--rs-warning); color: var(--rs-on-primary); }

/* Selector de ámbito (empresa ferroviaria / taller) */
.scope-field[b-35i9akr7jq] { margin-top: 0.85rem; display: flex; flex-direction: column; gap: 0.3rem; }
.scope-hint[b-35i9akr7jq] { font-size: 0.78rem; color: var(--rs-on-surface-variant); }

.role-card-name[b-35i9akr7jq] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
}

.role-card-desc[b-35i9akr7jq] {
    font-size: 0.68rem;
    color: var(--rs-on-surface-muted);
    line-height: 1.3;
}

/* ===== PASSWORD HINT ===== */
.password-hint[b-35i9akr7jq] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
    margin-top: 4px;
}

/* ===== PASSWORD STRENGTH ===== */
.password-strength-bar[b-35i9akr7jq] {
    height: 3px;
    border-radius: 3px;
    background: var(--rs-surface-container-high);
    margin-top: 4px;
    overflow: hidden;
}

.password-strength-fill[b-35i9akr7jq] {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease, background 0.3s ease;
}

.strength-weak[b-35i9akr7jq]   { width: 25%; background: var(--rs-danger); }
.strength-fair[b-35i9akr7jq]   { width: 50%; background: var(--rs-warning); }
.strength-good[b-35i9akr7jq]   { width: 75%; background: var(--rs-success); }
.strength-strong[b-35i9akr7jq] { width: 100%; background: var(--rs-success); }

.strength-label[b-35i9akr7jq] {
    font-size: 0.65rem;
    margin-top: 2px;
    font-weight: 500;
}

.strength-label.weak[b-35i9akr7jq]   { color: var(--rs-danger); }
.strength-label.fair[b-35i9akr7jq]   { color: var(--rs-warning); }
.strength-label.good[b-35i9akr7jq]   { color: var(--rs-success); }
.strength-label.strong[b-35i9akr7jq] { color: var(--rs-success); }

/* ===== ERROR ALERT ===== */
.error-alert[b-35i9akr7jq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--rs-danger-subtle);
    border: 1px solid var(--rs-danger-subtle);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    margin-top: 1rem;
    color: var(--rs-on-danger-subtle);
    font-size: 0.8rem;
    font-weight: 500;
    animation: shake-b-35i9akr7jq 0.3s ease;
}

@keyframes shake-b-35i9akr7jq {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

.error-alert-icon[b-35i9akr7jq] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ===== FOOTER ===== */
.dialog-footer[b-35i9akr7jq] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rs-outline-variant);
    margin-top: 0.5rem;
}

/* ===== SKELETON ===== */
.skeleton[b-35i9akr7jq] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-35i9akr7jq 1.5s infinite;
    border-radius: 6px;
}

@keyframes skeleton-shimmer-b-35i9akr7jq {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.skeleton-form[b-35i9akr7jq] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 0;
}

.skeleton-row[b-35i9akr7jq] {
    display: flex;
    gap: 1rem;
}

.skeleton-field[b-35i9akr7jq] {
    height: 48px;
    flex: 1;
    border-radius: 8px;
}

.skeleton-roles[b-35i9akr7jq] {
    display: flex;
    gap: 0.75rem;
}

.skeleton-role-card[b-35i9akr7jq] {
    height: 90px;
    flex: 1;
    border-radius: 10px;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .role-cards[b-35i9akr7jq] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Users/PermissionsMatrix.razor.rz.scp.css */
/* ============================================
   PermissionsMatrix — Scoped CSS
   Design system aligned with Dashboard.razor.css
   ============================================ */

/* Skeleton */
.skeleton[b-yqt9un0khx] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-yqt9un0khx 1.5s infinite;
    border-radius: 6px;
}

@keyframes skeleton-shimmer-b-yqt9un0khx {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.panel-fade-in[b-yqt9un0khx] {
    animation: panel-fade-in-b-yqt9un0khx 0.3s ease-out;
}

@keyframes panel-fade-in-b-yqt9un0khx {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ===== HEADER ===== */
.permissions-header[b-yqt9un0khx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    gap: 1rem;
}

.permissions-header-left[b-yqt9un0khx] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.permissions-title-row[b-yqt9un0khx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.permissions-title-icon[b-yqt9un0khx] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.permissions-title[b-yqt9un0khx] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    margin: 0;
}

.permissions-subtitle[b-yqt9un0khx] {
    font-size: 0.8rem;
    color: var(--rs-on-surface-muted);
    margin: 0;
    padding-left: 2.75rem;
}

.permissions-header-actions[b-yqt9un0khx] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.changes-badge[b-yqt9un0khx] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--rs-warning-subtle);
    color: var(--rs-on-warning-subtle);
}

/* ===== LEGEND ===== */
.role-legend[b-yqt9un0khx] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.role-legend-item[b-yqt9un0khx] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--rs-on-surface-variant);
}

.role-legend-dot[b-yqt9un0khx] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.dot-admin[b-yqt9un0khx]    { background: var(--rs-primary); }
.dot-gestor[b-yqt9un0khx]   { background: var(--rs-cyan); }
.dot-operador[b-yqt9un0khx] { background: var(--rs-success); }
.dot-usuario[b-yqt9un0khx]  { background: var(--rs-indigo); }
.dot-visor[b-yqt9un0khx]    { background: #52525b; }

/* ===== TABLE CARD ===== */
.permissions-card[b-yqt9un0khx] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    overflow: hidden;
}

.permissions-table-wrapper[b-yqt9un0khx] {
    overflow-x: auto;
}

/* ===== TABLE ===== */
.permissions-table[b-yqt9un0khx] {
    width: 100%;
    min-width: 700px;
    border-collapse: collapse;
}

.permissions-table thead th[b-yqt9un0khx] {
    padding: 0.75rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    text-align: center;
    white-space: nowrap;
    background: var(--rs-surface-container-low);
    border-bottom: 2px solid var(--rs-outline-variant);
}

.permissions-table thead th:first-child[b-yqt9un0khx] {
    text-align: left;
    padding-left: 1rem;
    min-width: 200px;
}

/* Role header badge */
.role-header-badge[b-yqt9un0khx] {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 8px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.3px;
}

.badge-gestor[b-yqt9un0khx]   { background: var(--rs-cyan); color: var(--rs-on-primary); }
.badge-operador[b-yqt9un0khx] { background: var(--rs-success); color: var(--rs-on-primary); }
.badge-usuario[b-yqt9un0khx]  { background: var(--rs-indigo); color: var(--rs-on-primary); }
.badge-visor[b-yqt9un0khx]    { background: #52525b; color: var(--rs-on-surface-inverse); }
.badge-admin[b-yqt9un0khx]    { background: var(--rs-primary); color: var(--rs-on-primary); }

/* Sub header (Ver/Crear/Editar/Borrar) */
.sub-header-row th[b-yqt9un0khx] {
    background: var(--rs-surface-container-low) !important;
    font-size: 0.68rem !important;
    color: var(--rs-on-surface-muted) !important;
    font-weight: 500 !important;
    padding: 0.4rem 0.5rem !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--rs-outline-variant) !important;
}

/* Role separator */
.role-separator[b-yqt9un0khx] {
    border-left: 2px solid var(--rs-outline-variant);
}

/* ===== ADMIN ROW ===== */
.admin-row[b-yqt9un0khx] {
    background: var(--rs-violet-subtle);
}

.admin-row td[b-yqt9un0khx] {
    padding: 0.625rem 0.5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.admin-label[b-yqt9un0khx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--rs-violet);
    padding-left: 0.5rem;
}

.admin-check[b-yqt9un0khx] {
    color: #818cf8;
    font-size: 1rem;
    opacity: 0.7;
}

/* ===== MODULE ROWS ===== */
.module-row[b-yqt9un0khx] {
    transition: background 0.15s ease;
}

.module-row:hover[b-yqt9un0khx] {
    background: var(--rs-surface-container-low);
}

.module-row td[b-yqt9un0khx] {
    padding: 0.625rem 0.5rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    text-align: center;
    vertical-align: middle;
}

.module-row td:first-child[b-yqt9un0khx] {
    text-align: left;
    padding-left: 1rem;
}

/* Zebra striping */
.module-row:nth-child(even)[b-yqt9un0khx] {
    background: var(--rs-surface-container-low);
}

.module-row:nth-child(even):hover[b-yqt9un0khx] {
    background: var(--rs-surface-container);
}

/* Module cell */
.module-cell[b-yqt9un0khx] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.module-icon[b-yqt9un0khx] {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: var(--rs-surface-container);
    color: var(--rs-on-surface-variant);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.module-name[b-yqt9un0khx] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--rs-on-surface);
}

/* ===== SKELETON TABLE ===== */
.skeleton-table[b-yqt9un0khx] {
    height: 400px;
    border-radius: 10px;
}

/* ===== SUCCESS ANIMATION ===== */
@keyframes save-flash-b-yqt9un0khx {
    0%   { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
    50%  { box-shadow: 0 0 0 3px rgba(22,163,74,0.3); }
    100% { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
}

.save-success[b-yqt9un0khx] {
    animation: save-flash-b-yqt9un0khx 0.6s ease;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .permissions-header[b-yqt9un0khx] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* /Pages/Users/UserProfile.razor.rz.scp.css */
/* ============================================
   UserProfile — Scoped CSS
   Design system aligned with Dashboard.razor.css
   ============================================ */

/* Skeleton shimmer animation */
.skeleton[b-p0ektwwtsk] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-p0ektwwtsk 1.5s infinite;
    border-radius: 6px;
}

@keyframes skeleton-shimmer-b-p0ektwwtsk {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* Fade-in animation */
.panel-fade-in[b-p0ektwwtsk] {
    animation: panel-fade-in-b-p0ektwwtsk 0.3s ease-out;
}

@keyframes panel-fade-in-b-p0ektwwtsk {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Container */
.profile-container[b-p0ektwwtsk] {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

/* ===== BANNER ===== */
.profile-banner[b-p0ektwwtsk] {
    background: var(--rs-primary-gradient, linear-gradient(135deg, #631656, #8b3d7c));
    border-radius: 12px;
    padding: 2.5rem 2rem 1.5rem;
    text-align: center;
    position: relative;
    margin-bottom: 3rem;
    box-shadow: 0 4px 20px rgba(67, 64, 210, 0.25);
}

/* La foto es el control: botón transparente que envuelve al avatar y revela el overlay
   "Cambiar" al pasar por encima o al recibir el foco por teclado. */
.profile-avatar-btn[b-p0ektwwtsk] {
    position: relative;
    display: block;
    margin: 0 auto 0.75rem;
    padding: 0;
    border: none;
    background: none;
    border-radius: 50%;
    cursor: pointer;
    line-height: 0;
}

.profile-avatar-btn:focus-visible[b-p0ektwwtsk] {
    outline: 3px solid var(--rs-surface);
    outline-offset: 3px;
}

.profile-avatar-overlay[b-p0ektwwtsk] {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--rs-scrim);
    color: var(--rs-on-primary);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    opacity: 0;
    transition: opacity 0.18s ease;
    line-height: 1;
    pointer-events: none;
}

.profile-avatar-btn:hover .profile-avatar-overlay[b-p0ektwwtsk],
.profile-avatar-btn:focus-visible .profile-avatar-overlay[b-p0ektwwtsk] {
    opacity: 1;
}

.profile-avatar-overlay .material-icons-round[b-p0ektwwtsk] {
    font-size: 24px;
}

.profile-avatar-overlay-text[b-p0ektwwtsk] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.profile-avatar-btn:hover .profile-avatar[b-p0ektwwtsk] {
    border-color: var(--rs-surface);
}

/* Anillo alrededor del avatar del banner; el contenido (foto o iniciales) lo pinta <UserAvatar>. */
.profile-avatar[b-p0ektwwtsk] {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    border: 3px solid rgba(255,255,255,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transition: border-color 0.18s ease;
}

.profile-name[b-p0ektwwtsk] {
    color: var(--rs-on-primary);
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
}

.profile-username[b-p0ektwwtsk] {
    color: rgba(255,255,255,0.7);
    font-size: 0.9rem;
    margin: 0 0 0.75rem;
}

.profile-role-badges[b-p0ektwwtsk] {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.profile-role-badge[b-p0ektwwtsk] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.3px;
    background: rgba(255,255,255,0.2);
    color: var(--rs-on-primary);
    backdrop-filter: blur(6px);
}

/* ===== KPI ROW ===== */
.profile-kpi-row[b-p0ektwwtsk] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.profile-kpi-card[b-p0ektwwtsk] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-left: 4px solid transparent;
    transition: box-shadow 0.2s, transform 0.15s;
}

.profile-kpi-card:hover[b-p0ektwwtsk] {
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}

.kpi-access[b-p0ektwwtsk]   { border-left-color: var(--rs-info); }
.kpi-role[b-p0ektwwtsk]     { border-left-color: var(--rs-primary); }
.kpi-member[b-p0ektwwtsk]   { border-left-color: var(--rs-success); }

.profile-kpi-icon[b-p0ektwwtsk] {
    font-size: 1.5rem;
    opacity: 0.75;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
}

.kpi-access .profile-kpi-icon[b-p0ektwwtsk]   { color: var(--rs-on-info-subtle); background: var(--rs-info-subtle); }
.kpi-role .profile-kpi-icon[b-p0ektwwtsk]     { color: var(--rs-primary-text); background: var(--rs-primary-subtle); }
.kpi-member .profile-kpi-icon[b-p0ektwwtsk]   { color: var(--rs-on-success-subtle); background: var(--rs-success-subtle); }

.profile-kpi-content[b-p0ektwwtsk] {
    display: flex;
    flex-direction: column;
}

.profile-kpi-value[b-p0ektwwtsk] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    line-height: 1.2;
}

.profile-kpi-label[b-p0ektwwtsk] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

/* ===== CARDS ===== */
.profile-card[b-p0ektwwtsk] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}

.profile-section-header[b-p0ektwwtsk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--rs-outline-variant);
}

.profile-section-icon[b-p0ektwwtsk] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.section-icon-person[b-p0ektwwtsk]  { background: var(--rs-primary-subtle); color: var(--rs-primary-text); }
.section-icon-lock[b-p0ektwwtsk]    { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.section-icon-history[b-p0ektwwtsk] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }

.profile-section-title[b-p0ektwwtsk] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    margin: 0;
}

/* ===== FIELDS GRID ===== */
.profile-fields-grid[b-p0ektwwtsk] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem 2rem;
}

.profile-field[b-p0ektwwtsk] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.profile-field-row[b-p0ektwwtsk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.profile-field-icon[b-p0ektwwtsk] {
    font-size: 1rem;
    color: var(--rs-on-surface-muted);
    flex-shrink: 0;
}

.profile-field-label[b-p0ektwwtsk] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.profile-field-value[b-p0ektwwtsk] {
    font-size: 0.95rem;
    color: var(--rs-on-surface);
    font-weight: 500;
    padding-left: 1.5rem;
}

/* ===== PASSWORD FORM ===== */
.password-form-container[b-p0ektwwtsk] {
    max-width: 420px;
}

.password-field[b-p0ektwwtsk] {
    margin-bottom: 1rem;
}

.password-strength-bar[b-p0ektwwtsk] {
    height: 4px;
    border-radius: 4px;
    background: var(--rs-surface-container-high);
    margin-top: 6px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.password-strength-fill[b-p0ektwwtsk] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.3s ease, background 0.3s ease;
}

.strength-weak[b-p0ektwwtsk]   { width: 25%; background: var(--rs-danger); }
.strength-fair[b-p0ektwwtsk]   { width: 50%; background: var(--rs-warning); }
.strength-good[b-p0ektwwtsk]   { width: 75%; background: var(--rs-success); }
.strength-strong[b-p0ektwwtsk] { width: 100%; background: var(--rs-success); }

.strength-text[b-p0ektwwtsk] {
    font-size: 0.7rem;
    margin-top: 4px;
    font-weight: 500;
}

.strength-text.weak[b-p0ektwwtsk]   { color: var(--rs-danger); }
.strength-text.fair[b-p0ektwwtsk]   { color: var(--rs-warning); }
.strength-text.good[b-p0ektwwtsk]   { color: var(--rs-success); }
.strength-text.strong[b-p0ektwwtsk] { color: var(--rs-success); }

.password-submit-btn[b-p0ektwwtsk] {
    margin-top: 0.5rem;
}

/* ===== ACTIVITY GRID ===== */
.activity-empty[b-p0ektwwtsk] {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--rs-on-surface-muted);
}

.activity-empty-icon[b-p0ektwwtsk] {
    font-size: 2.5rem;
    opacity: 0.4;
    margin-bottom: 0.5rem;
    display: block;
}

.activity-empty-text[b-p0ektwwtsk] {
    font-size: 0.9rem;
    font-style: italic;
}

.action-badge[b-p0ektwwtsk] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 600;
}

.action-crear[b-p0ektwwtsk]    { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.action-editar[b-p0ektwwtsk]   { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.action-eliminar[b-p0ektwwtsk] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.action-consultar[b-p0ektwwtsk] { background: var(--rs-surface-container-low); color: var(--rs-on-surface-variant); }

/* ===== SKELETON ===== */
.skeleton-banner[b-p0ektwwtsk] {
    height: 200px;
    border-radius: 12px;
    margin-bottom: 3rem;
}

.skeleton-kpi[b-p0ektwwtsk] {
    height: 72px;
    border-radius: 10px;
}

.skeleton-card[b-p0ektwwtsk] {
    height: 160px;
    border-radius: 10px;
    margin-bottom: 1.25rem;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .profile-banner[b-p0ektwwtsk] {
        padding: 2rem 1rem 1.25rem;
    }

    .profile-kpi-row[b-p0ektwwtsk] {
        grid-template-columns: 1fr;
    }

    .profile-fields-grid[b-p0ektwwtsk] {
        grid-template-columns: 1fr;
    }

    .profile-card[b-p0ektwwtsk] {
        padding: 1rem;
    }
}

@media (max-width: 480px) {
    .profile-container[b-p0ektwwtsk] {
        padding: 0 0.5rem 1.5rem;
    }

    .profile-name[b-p0ektwwtsk] {
        font-size: 1.2rem;
    }
}
/* /Pages/Users/Users.razor.rz.scp.css */
/* ============================================
   Users — Scoped CSS
   Design system aligned with Dashboard.razor.css
   ============================================ */

/* Skeleton */
.skeleton[b-abhcldhr7r] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 50%, var(--rs-surface-container) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer-b-abhcldhr7r 1.5s infinite;
    border-radius: 6px;
}

@keyframes skeleton-shimmer-b-abhcldhr7r {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.panel-fade-in[b-abhcldhr7r] {
    animation: panel-fade-in-b-abhcldhr7r 0.3s ease-out;
}

@keyframes panel-fade-in-b-abhcldhr7r {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ===== KPI ROW ===== */
.users-kpi-row[b-abhcldhr7r] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.users-kpi-card[b-abhcldhr7r] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-left: 4px solid transparent;
    transition: box-shadow 0.2s, transform 0.15s;
}

.users-kpi-card:hover[b-abhcldhr7r] {
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}

.kpi-total[b-abhcldhr7r]    { border-left-color: var(--rs-primary); }
.kpi-active[b-abhcldhr7r]   { border-left-color: var(--rs-success); }
.kpi-inactive[b-abhcldhr7r] { border-left-color: var(--rs-danger); }
.kpi-admins[b-abhcldhr7r]   { border-left-color: var(--rs-warning); }

.users-kpi-icon[b-abhcldhr7r] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.kpi-total .users-kpi-icon[b-abhcldhr7r]    { color: var(--rs-primary-text); background: var(--rs-primary-subtle); }
.kpi-active .users-kpi-icon[b-abhcldhr7r]   { color: var(--rs-on-success-subtle); background: var(--rs-success-subtle); }
.kpi-inactive .users-kpi-icon[b-abhcldhr7r] { color: var(--rs-on-danger-subtle); background: var(--rs-danger-subtle); }
.kpi-admins .users-kpi-icon[b-abhcldhr7r]   { color: var(--rs-on-warning-subtle); background: var(--rs-warning-subtle); }

.users-kpi-content[b-abhcldhr7r] {
    display: flex;
    flex-direction: column;
}

.users-kpi-value[b-abhcldhr7r] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    line-height: 1.1;
}

.users-kpi-label[b-abhcldhr7r] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

.skeleton-kpi[b-abhcldhr7r] {
    height: 72px;
    border-radius: 10px;
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* ===== SEARCH BAR ===== */
.users-search-bar[b-abhcldhr7r] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 0.875rem 1.25rem;
    margin-bottom: 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.search-input-wrapper[b-abhcldhr7r] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    min-width: 200px;
}

.search-icon[b-abhcldhr7r] {
    color: var(--rs-on-surface-muted);
    font-size: 1.2rem;
}

.search-actions[b-abhcldhr7r] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* ===== DATA GRID CARD ===== */
.users-grid-card[b-abhcldhr7r] {
    background: var(--rs-surface);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 0.25rem 0;
    overflow: hidden;
}

/* ===== USER CELL ===== */
.user-cell[b-abhcldhr7r] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.user-avatar[b-abhcldhr7r] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rs-primary, #631656), var(--rs-primary-light, #8b3d7c));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rs-on-primary);
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
    position: relative;
}

.avatar-status-ring[b-abhcldhr7r] {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    border: 2px solid var(--rs-surface);
}

.ring-active[b-abhcldhr7r]   { background: var(--rs-success); }
.ring-inactive[b-abhcldhr7r] { background: #a1a1aa; }

.user-info[b-abhcldhr7r] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.user-name[b-abhcldhr7r] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-username[b-abhcldhr7r] {
    font-size: 0.75rem;
    color: var(--rs-on-surface-muted);
}

/* ===== ROLE BADGE ===== */
.role-badge[b-abhcldhr7r] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.3px;
}

.role-admin[b-abhcldhr7r]    { background: var(--rs-primary); color: var(--rs-on-primary); }
.role-gestor[b-abhcldhr7r]   { background: var(--rs-cyan); color: var(--rs-on-primary); }
.role-operador[b-abhcldhr7r] { background: var(--rs-success); color: var(--rs-on-primary); }
.role-usuario[b-abhcldhr7r]  { background: var(--rs-indigo); color: var(--rs-on-primary); }
.role-legacy[b-abhcldhr7r]   { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); border: 1px solid var(--rs-warning); }
.role-visor[b-abhcldhr7r]    { background: #52525b; color: var(--rs-on-surface-inverse); }
.role-default[b-abhcldhr7r]  { background: #27272a; color: var(--rs-on-surface-muted); }
.role-none[b-abhcldhr7r]     { color: var(--rs-on-surface-muted); font-size: 0.75rem; font-style: italic; }

/* ===== EMPRESA CELL ===== */
.empresa-cell[b-abhcldhr7r] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 2px 6px;
    margin: -2px -6px;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s;
}

.empresa-cell:hover[b-abhcldhr7r] {
    background: var(--rs-surface-container-low);
}

.empresa-badge[b-abhcldhr7r] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.empresa-vacia[b-abhcldhr7r] {
    color: var(--rs-on-surface-muted);
    font-size: 0.75rem;
    font-style: italic;
}

.empresa-edit-icon[b-abhcldhr7r] {
    font-size: 0.9rem;
    color: var(--rs-on-surface-muted);
    opacity: 0;
    margin-left: auto;
    flex-shrink: 0;
    transition: opacity 0.15s;
}

.empresa-cell:hover .empresa-edit-icon[b-abhcldhr7r] {
    opacity: 1;
}

.empresa-edit[b-abhcldhr7r] {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 100%;
}

.empresa-edit[b-abhcldhr7r]  .rz-dropdown {
    flex: 1 1 auto;
    min-width: 0;
}

/* ===== STATUS ===== */
.status-indicator[b-abhcldhr7r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 600;
}

.status-dot[b-abhcldhr7r] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.dot-active[b-abhcldhr7r]   { background: var(--rs-success); }
.dot-inactive[b-abhcldhr7r] { background: var(--rs-danger); }

.status-active[b-abhcldhr7r]   { color: var(--rs-success); }
.status-inactive[b-abhcldhr7r] { color: var(--rs-danger); }

/* ===== LAST LOGIN ===== */
.last-login[b-abhcldhr7r] {
    color: var(--rs-on-surface-muted);
    font-size: 0.8rem;
}

.last-login-never[b-abhcldhr7r] {
    color: var(--rs-on-surface-disabled);
    font-size: 0.8rem;
    font-style: italic;
}

/* ===== ACTION BUTTONS ===== */
.action-btn-group[b-abhcldhr7r] {
    display: flex;
    gap: 4px;
}

/* ===== EMPTY STATE ===== */
.empty-state[b-abhcldhr7r] {
    text-align: center;
    padding: 3rem 1rem;
}

.empty-state-icon[b-abhcldhr7r] {
    font-size: 3rem;
    color: var(--rs-on-surface-disabled);
    display: block;
    margin-bottom: 0.75rem;
}

.empty-state-title[b-abhcldhr7r] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    margin: 0 0 0.25rem;
}

.empty-state-sub[b-abhcldhr7r] {
    font-size: 0.85rem;
    color: var(--rs-on-surface-muted);
    margin: 0;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1200px) {
    .users-kpi-row[b-abhcldhr7r] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .users-kpi-row[b-abhcldhr7r] {
        grid-template-columns: 1fr;
    }

    .users-search-bar[b-abhcldhr7r] {
        flex-direction: column;
        align-items: stretch;
    }

    .search-actions[b-abhcldhr7r] {
        justify-content: flex-end;
    }
}
/* /Pages/Wagons/WagonLocator.razor.rz.scp.css */
.rs-locator-page[b-yt2ic4hdnc] {
    --rs-primary: #420134;
    --rs-primary-container: #5d1a4b;
    --rs-secondary: #92407d;
    --rs-secondary-container: #fd9cdf;
    --rs-on-secondary-container: #7b2c69;
    --rs-on-primary-container: #d783b9;
    --rs-surface: #f9f9fb;
    --rs-surface-bright: #f9f9fb;
    --rs-surface-container: #eeeef0;
    --rs-surface-container-high: #e8e8ea;
    --rs-surface-container-low: #f3f3f5;
    --rs-surface-dim: #d9dadc;
    --rs-outline-variant: #d5c1ca;
    --rs-on-surface: #1a1c1d;
    --rs-on-surface-variant: #51434a;
    --rs-error: #ba1a1a;
    --rs-error-container: #ffdad6;

    min-height: calc(100vh - 48px);
    margin: -1rem -1.5rem;
    position: relative;
    background: var(--rs-surface-dim);
    overflow: hidden;
}

.rs-locator-bg[b-yt2ic4hdnc] {
    position: absolute;
    inset: 0;
    opacity: 0.35;
    background:
        linear-gradient(135deg, #e8f0e8 0%, #d4e4d4 30%, #c8d8c0 60%, #b8c8b0 100%);
    filter: grayscale(0.6);
}

.rs-locator-overlay[b-yt2ic4hdnc] {
    position: relative;
    z-index: 1;
    min-height: calc(100vh - 48px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: var(--rs-shade-strong);
    backdrop-filter: blur(4px);
}

/* Modo diálogo (lupa de la barra superior): el cascarón lo pone Radzen —máscara, sombra y
   posición—, así que aquí solo queda la tarjeta, sin alto de viewport ni velo propio. */
.rs-locator-page--dialog[b-yt2ic4hdnc] {
    min-height: 0;
    margin: 0;
    background: transparent;
    overflow: visible;
}

.rs-locator-page--dialog .rs-locator-overlay[b-yt2ic4hdnc] {
    min-height: 0;
    padding: 0;
    background: transparent;
    backdrop-filter: none;
}

.rs-locator-page--dialog .rs-locator-modal[b-yt2ic4hdnc] {
    max-width: none;
    max-height: calc(100vh - 6rem);
    border: none;
    box-shadow: none;
}

.rs-locator-modal[b-yt2ic4hdnc] {
    width: 100%;
    max-width: 72rem;
    max-height: calc(100vh - 96px);
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.rs-locator-header[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
}

.rs-locator-header h1[b-yt2ic4hdnc] {
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rs-locator-close[b-yt2ic4hdnc] {
    background: transparent;
    border: none;
    color: var(--rs-on-primary);
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.rs-locator-close:hover[b-yt2ic4hdnc] {
    background: rgba(255, 255, 255, 0.1);
}

.rs-locator-search[b-yt2ic4hdnc] {
    padding: 1.5rem 2rem;
    border-bottom: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-bright);
}

.rs-locator-search-inner[b-yt2ic4hdnc] {
    max-width: 42rem;
    margin: 0 auto;
    display: flex;
    gap: 0.75rem;
}

.rs-locator-search-field[b-yt2ic4hdnc] {
    flex: 1;
    position: relative;
}

.rs-locator-search-field .material-icons-round[b-yt2ic4hdnc] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rs-on-surface-variant);
    font-size: 20px;
}

.rs-locator-search-field input[b-yt2ic4hdnc] {
    width: 100%;
    padding: 0.5rem 1rem 0.5rem 2.5rem;
    border: none;
    border-radius: 0.25rem;
    background: var(--rs-surface-container);
    font-size: 0.875rem;
    outline: none;
}

.rs-locator-search-field input:focus[b-yt2ic4hdnc] {
    box-shadow: 0 0 0 2px var(--rs-primary);
}

.rs-locator-search-btn[b-yt2ic4hdnc] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border: none;
    border-radius: 0.25rem;
    padding: 0.5rem 1.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    cursor: pointer;
    white-space: nowrap;
}

.rs-locator-search-btn:disabled[b-yt2ic4hdnc] {
    opacity: 0.6;
    cursor: not-allowed;
}

.rs-locator-body[b-yt2ic4hdnc] {
    flex: 1;
    overflow-y: auto;
    padding: 2rem;
}

.rs-locator-body[b-yt2ic4hdnc]::-webkit-scrollbar { width: 4px; }
.rs-locator-body[b-yt2ic4hdnc]::-webkit-scrollbar-thumb { background: var(--rs-outline-variant); border-radius: 10px; }

.rs-locator-grid[b-yt2ic4hdnc] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 1024px) {
    .rs-locator-grid[b-yt2ic4hdnc] {
        grid-template-columns: 1fr 2fr;
    }
}

.rs-locator-col[b-yt2ic4hdnc] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rs-locator-card[b-yt2ic4hdnc] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.5rem;
    padding: 0.75rem;
}

.rs-locator-card-header[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.rs-locator-label[b-yt2ic4hdnc] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-primary-text);
}

.rs-locator-badge[b-yt2ic4hdnc] {
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
}

.rs-locator-badge-active[b-yt2ic4hdnc] {
    background: var(--rs-secondary-container);
    color: var(--rs-on-secondary-container);
}

.rs-locator-badge-inactive[b-yt2ic4hdnc] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface-variant);
}

.rs-locator-stat-row[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0;
}

.rs-locator-stat-left[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
}

.rs-locator-stat-left .material-icons-round[b-yt2ic4hdnc] {
    color: var(--rs-on-surface-variant);
    font-size: 20px;
}

.rs-locator-stat-right[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 700;
}

.rs-locator-battery-bar[b-yt2ic4hdnc] {
    width: 3rem;
    height: 0.5rem;
    background: var(--rs-surface-container);
    border-radius: 999px;
    overflow: hidden;
}

.rs-locator-battery-fill[b-yt2ic4hdnc] {
    height: 100%;
    border-radius: 999px;
    transition: width 0.3s;
}

.rs-locator-gps-dot[b-yt2ic4hdnc] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    animation: rs-locator-pulse-b-yt2ic4hdnc 2s infinite;
}

.rs-locator-gps-dot.online[b-yt2ic4hdnc] { background: var(--rs-success); }
.rs-locator-gps-dot.offline[b-yt2ic4hdnc] { background: var(--rs-outline-strong); animation: none; }

@keyframes rs-locator-pulse-b-yt2ic4hdnc {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.rs-locator-mono[b-yt2ic4hdnc] {
    font-family: 'IBM Plex Mono', 'Consolas', monospace;
    font-size: 0.8125rem;
    color: var(--rs-on-surface-variant);
}

.rs-locator-empty[b-yt2ic4hdnc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    gap: 0.75rem;
    border: 2px dashed var(--rs-surface-container);
    border-radius: 0.25rem;
    text-align: center;
}

.rs-locator-empty .material-icons-round[b-yt2ic4hdnc] {
    font-size: 2.5rem;
    color: var(--rs-outline-variant);
    font-weight: 200;
}

.rs-locator-empty p[b-yt2ic4hdnc] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--rs-on-surface-variant);
}

.rs-locator-empty small[b-yt2ic4hdnc] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    opacity: 0.4;
}

.rs-locator-tech-grid[b-yt2ic4hdnc] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 480px) {
    .rs-locator-tech-grid[b-yt2ic4hdnc] {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
}

.rs-locator-tech-grid p[b-yt2ic4hdnc] {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
    font-weight: 700;
}

.rs-locator-tech-grid small[b-yt2ic4hdnc] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
}

.rs-locator-timeline-card[b-yt2ic4hdnc] {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    min-height: 400px;
}

.rs-locator-timeline-header[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.rs-locator-timeline-title[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.rs-locator-timeline-title span:last-child[b-yt2ic4hdnc] {
    font-size: 0.875rem;
    font-weight: 700;
}

.rs-locator-divider[b-yt2ic4hdnc] {
    width: 1px;
    height: 1rem;
    background: var(--rs-outline-variant);
}

.rs-locator-timeline[b-yt2ic4hdnc] {
    position: relative;
    padding-left: 2rem;
    flex: 1;
}

.rs-locator-timeline-line[b-yt2ic4hdnc] {
    position: absolute;
    left: 11px;
    top: 1rem;
    bottom: 1rem;
    width: 2px;
    background: rgba(213, 193, 202, 0.3);
}

.rs-locator-timeline-items[b-yt2ic4hdnc] {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.rs-locator-timeline-item[b-yt2ic4hdnc] {
    position: relative;
}

.rs-locator-timeline-dot[b-yt2ic4hdnc] {
    position: absolute;
    left: -2rem;
    top: 6px;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    border: 4px solid var(--rs-surface);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    z-index: 1;
}

.rs-locator-timeline-dot.primary[b-yt2ic4hdnc] { background: var(--rs-primary); }
.rs-locator-timeline-dot.muted[b-yt2ic4hdnc] { background: var(--rs-surface-container); }
.rs-locator-timeline-dot.outline[b-yt2ic4hdnc] { background: var(--rs-outline-variant); }

.rs-locator-timeline-content[b-yt2ic4hdnc] {
    padding: 1rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 0.25rem;
    transition: border-color 0.15s;
}

.rs-locator-timeline-content:hover[b-yt2ic4hdnc] {
    border-color: var(--rs-primary);
}

.rs-locator-timeline-content.highlight[b-yt2ic4hdnc] {
    background: rgba(249, 249, 251, 0.5);
}

.rs-locator-trip-title[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

.rs-locator-trip-title strong[b-yt2ic4hdnc] {
    font-size: 0.875rem;
}

.rs-locator-trip-badge[b-yt2ic4hdnc] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 0.125rem 0.5rem;
    border-radius: 0.125rem;
}

.rs-locator-trip-badge.arrival[b-yt2ic4hdnc] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.rs-locator-trip-badge.transit[b-yt2ic4hdnc] { background: var(--rs-surface-container-high); color: var(--rs-on-surface-variant); }
.rs-locator-trip-badge.origin[b-yt2ic4hdnc] { background: var(--rs-primary-container); color: var(--rs-on-primary-container); }

.rs-locator-trip-address[b-yt2ic4hdnc] {
    font-size: 0.875rem;
    color: var(--rs-on-surface-variant);
    margin: 0 0 0.75rem;
}

.rs-locator-trip-meta[b-yt2ic4hdnc] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.8125rem;
    color: var(--rs-on-surface-variant);
}

.rs-locator-trip-meta span[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.rs-locator-trip-meta .material-icons-round[b-yt2ic4hdnc] {
    font-size: 16px;
}

.rs-locator-footer[b-yt2ic4hdnc] {
    padding: 1rem 2rem;
    border-top: 1px solid var(--rs-outline-variant);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    background: var(--rs-surface);
}

.rs-locator-footer-actions[b-yt2ic4hdnc] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.rs-locator-footer-btn[b-yt2ic4hdnc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: none;
    color: var(--rs-primary-text);
    font-weight: 700;
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0.5rem 1rem;
    border-radius: 0.25rem;
    transition: background 0.15s;
}

.rs-locator-footer-btn:hover[b-yt2ic4hdnc] {
    background: rgba(93, 26, 75, 0.08);
}

.rs-locator-footer-btn:disabled[b-yt2ic4hdnc] {
    opacity: 0.5;
    cursor: not-allowed;
}

.rs-locator-footer-note[b-yt2ic4hdnc] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
    opacity: 0.6;
    font-style: italic;
}

.rs-locator-placeholder[b-yt2ic4hdnc] {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--rs-on-surface-variant);
}

.rs-locator-placeholder .material-icons-round[b-yt2ic4hdnc] {
    font-size: 48px;
    opacity: 0.3;
    margin-bottom: 1rem;
}

.rs-locator-skeleton[b-yt2ic4hdnc] {
    background: linear-gradient(90deg, var(--rs-surface-container) 25%, var(--rs-surface-container-high) 37%, var(--rs-surface-container) 63%);
    background-size: 400% 100%;
    animation: rs-locator-shimmer-b-yt2ic4hdnc 1.2s ease-in-out infinite;
    border-radius: 0.25rem;
    height: 1rem;
}

.rs-locator-skeleton-lg[b-yt2ic4hdnc] { height: 3rem; margin-bottom: 0.5rem; }

@keyframes rs-locator-shimmer-b-yt2ic4hdnc {
    0% { background-position: 100% 0; }
    100% { background-position: 0 0; }
}

.rs-locator-location-stack[b-yt2ic4hdnc] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.rs-locator-location-primary[b-yt2ic4hdnc] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--rs-primary-text);
    margin: 0;
    line-height: 1.35;
}

.rs-locator-location-line[b-yt2ic4hdnc] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rs-locator-location-line small[b-yt2ic4hdnc] {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--rs-on-surface-variant);
}

.rs-locator-location-line span[b-yt2ic4hdnc] {
    font-size: 0.8125rem;
    color: var(--rs-on-surface);
    line-height: 1.4;
}

.rs-locator-trip-locations[b-yt2ic4hdnc] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.rs-locator-trip-locations .rs-locator-location-line span[b-yt2ic4hdnc] {
    font-size: 0.8125rem;
    color: var(--rs-on-surface-variant);
}

.rs-locator-error[b-yt2ic4hdnc] {
    padding: 1rem;
    background: var(--rs-error-container);
    color: var(--rs-error);
    border-radius: 0.25rem;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.rs-locator-candidates[b-yt2ic4hdnc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.rs-locator-candidate[b-yt2ic4hdnc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: 'IBM Plex Mono', 'Consolas', monospace;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--rs-primary-text);
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, transform 0.12s;
}

.rs-locator-candidate:hover[b-yt2ic4hdnc] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-color: var(--rs-primary);
    transform: translateY(-1px);
}

.rs-locator-candidate .material-icons-round[b-yt2ic4hdnc] { font-size: 1rem; }

/* Móvil: el padding pensado para escritorio (1.5-2rem por todos lados, encadenado en
   overlay+search/body) se come casi 100px de un iPhone de 375px antes de llegar al contenido.
   Se recorta en cascada; la rejilla técnica ya colapsa arriba. */
@media (max-width: 480px) {
    .rs-locator-overlay[b-yt2ic4hdnc] { padding: 0.5rem; }
    .rs-locator-header[b-yt2ic4hdnc] { padding: 0.85rem 1rem; }
    .rs-locator-search[b-yt2ic4hdnc] { padding: 1rem; }
    .rs-locator-body[b-yt2ic4hdnc] { padding: 1rem; }
    .rs-locator-footer[b-yt2ic4hdnc] { padding: 0.85rem 1rem; }
    .rs-locator-timeline-card[b-yt2ic4hdnc] { padding: 1rem; }
    .rs-locator-timeline[b-yt2ic4hdnc] { padding-left: 1.5rem; }
    .rs-locator-timeline-dot[b-yt2ic4hdnc] { left: -1.5rem; }
}

/* Modo oscuro: en lugar de repetir la paleta, se hereda la de :root
   (railsider-theme.css), que ya resuelve claro y oscuro. */
:root[data-theme="dark"] .rs-locator-page[b-yt2ic4hdnc] {
    --rs-primary: inherit;
    --rs-primary-container: inherit;
    --rs-secondary: inherit;
    --rs-secondary-container: inherit;
    --rs-on-secondary-container: inherit;
    --rs-on-primary-container: inherit;
    --rs-surface: inherit;
    --rs-surface-bright: inherit;
    --rs-surface-container: inherit;
    --rs-surface-container-high: inherit;
    --rs-surface-container-low: inherit;
    --rs-surface-dim: inherit;
    --rs-outline-variant: inherit;
    --rs-on-surface: inherit;
    --rs-on-surface-variant: inherit;
    --rs-error: inherit;
    --rs-error-container: inherit;
}
/* /Pages/WagonStops/WagonStopsIndex.razor.rz.scp.css */
/* Listado de inmovilizados en tarjetas: vista de filas y maestro-detalle (sketch 003).
   Solo tokens de railsider-theme.css: el tema oscuro sale solo. */

/* ── Filtro superior de pertenencia ──
   Las píldoras las pinta CompanyFilterBar (CSS propio); aquí solo su sitio: a la derecha,
   sobre el panel de filtros. */
.pertenencia-row[b-7sigidzf0z] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}

/* ── Toolbar de la lista (los ex-filtros de columna del grid) ──
   Cada filtro es una píldora: discreta en reposo, teñida cuando filtra. Los internos de
   Radzen viven fuera del ámbito de este CSS aislado, de ahí los ::deep. */
.list-toolbar[b-7sigidzf0z] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

/* Ordenar: única píldora que sigue siendo un RadzenDropDown (valor único, sin buscador).
   Se le da la misma forma que a los filtros para que la barra se lea como un conjunto. */
.tb-sort[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    color: var(--rs-on-surface-muted);
}

.tb-sort .material-icons-round[b-7sigidzf0z] { font-size: 18px; }

.tb-sort[b-7sigidzf0z]  .rz-dropdown {
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    min-height: 34px;
    align-items: center;
    box-shadow: none;
    transition: border-color 0.15s ease;
}

.tb-sort[b-7sigidzf0z]  .rz-dropdown:hover { border-color: var(--rs-outline-strong); }

.tb-sort[b-7sigidzf0z]  .rz-dropdown-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    padding: 0 0.35rem 0 0.85rem;
    background: transparent;
}

.tb-sort[b-7sigidzf0z]  .rz-dropdown-trigger {
    background: transparent;
    color: var(--rs-on-surface-muted);
    border: none;
    width: 26px;
}

.toolbar-count[b-7sigidzf0z] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
}

/* ── Fila de leyenda: códigos de tipo (que filtran) + formato de lista ── */
.leyenda-row[b-7sigidzf0z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tipo-leyenda[b-7sigidzf0z] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

/* Cada código de la leyenda es un filtro: se nota al pasar por encima */
.leyenda-chip[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 11px 3px 4px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.leyenda-chip:hover[b-7sigidzf0z] {
    background: var(--rs-surface-container);
    border-color: var(--rs-outline-variant);
    color: var(--rs-on-surface);
}

.leyenda-chip.activo[b-7sigidzf0z] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
}

/* Los códigos no elegidos se apagan cuando hay algún filtro de tipo activo */
.tipo-leyenda:has(.leyenda-chip.activo) .leyenda-chip:not(.activo)[b-7sigidzf0z] { opacity: 0.55; }

.leyenda-reset[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 4px;
    padding: 3px 10px;
    border: 1px dashed var(--rs-outline);
    border-radius: 999px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.leyenda-reset:hover[b-7sigidzf0z] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

/* ── Conmutador de formato de lista: sutil, a la altura de la leyenda ── */
.view-switch[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    background: var(--rs-surface-container-low);
    flex: 0 0 auto;
}

.vs-opt[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 26px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.vs-opt:hover[b-7sigidzf0z] { color: var(--rs-on-surface); }

.vs-opt.activo[b-7sigidzf0z] {
    background: var(--rs-surface);
    color: var(--rs-primary-text);
    box-shadow: var(--rs-shadow-sm);
}

/* ── Etiqueta de inmovilizado cerrado ── */
.tag-cerrada[b-7sigidzf0z] {
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.6px;
    padding: 1px 7px;
    border-radius: 5px;
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
    white-space: nowrap;
}

/* ── Estado vacío ── */
.list-empty[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 44px 20px;
    border: 1px dashed var(--rs-outline);
    border-radius: 12px;
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container-low);
}

/* ══ Vista A: filas-tarjeta ══════════════════════════════════════════════ */
.rowcards[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rowcard[b-7sigidzf0z] {
    display: grid;
    grid-template-columns: 225px 205px 175px minmax(220px, 1fr) 165px auto;
    gap: 8px 16px;
    align-items: center;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 10px 14px;
    cursor: pointer;
    box-shadow: var(--rs-shadow-sm);
    transition: box-shadow 0.15s ease, border-color 0.15s ease, translate 0.15s ease;
}

.rowcard:hover[b-7sigidzf0z] {
    box-shadow: var(--rs-shadow-md);
    border-color: var(--rs-outline);
    translate: 0 -1px;
}

.rowcard.cerrada[b-7sigidzf0z] { opacity: 0.72; }

/* Borde izquierdo con el color del tipo de inmovilizado (mismos que el chip) */
.rowcard.tipo-C[b-7sigidzf0z] { border-left-color: var(--rs-danger); }
.rowcard.tipo-P[b-7sigidzf0z] { border-left-color: var(--rs-info); }
.rowcard.tipo-I[b-7sigidzf0z] { border-left-color: var(--rs-violet); }
.rowcard.tipo-N[b-7sigidzf0z] { border-left-color: var(--rs-warning); }
.rowcard.tipo-O[b-7sigidzf0z] { border-left-color: var(--rs-neutral); }
.rowcard.tipo-V[b-7sigidzf0z] { border-left-color: var(--rs-steel); }

.rc-ident[b-7sigidzf0z] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.rc-col[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    font-size: 0.8rem;
}

.rc-plate[b-7sigidzf0z] {
    font-weight: 700;
    font-size: 0.9rem;
}

.rc-sub[b-7sigidzf0z] {
    font-size: 0.73rem;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.rc-ubi[b-7sigidzf0z] {
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rc-muted[b-7sigidzf0z] {
    color: var(--rs-on-surface-muted);
    font-size: 0.73rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rc-lbl[b-7sigidzf0z] {
    font-size: 0.63rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.rc-prox[b-7sigidzf0z] {
    cursor: pointer;
    border-radius: 6px;
    padding: 2px 6px;
    margin: -2px -6px;
    transition: background 0.15s;
}

.rc-prox:hover[b-7sigidzf0z] { background: var(--rs-surface-container); }

.rc-cierre[b-7sigidzf0z] {
    font-size: 0.78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rc-ops[b-7sigidzf0z] { justify-self: end; }

/* Fragmentos compartidos */
.estado-badge[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.prox-accion[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.prox-linea[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.prox-desc[b-7sigidzf0z] {
    white-space: normal;
    word-break: break-word;
    font-size: 0.8rem;
    line-height: 1.3;
    max-height: 2.6em;
    overflow: hidden;
    color: var(--rs-on-surface-variant);
}

.sin-acciones[b-7sigidzf0z] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--rs-on-surface-muted);
    font-size: 0.8rem;
}

/* En pantallas estrechas la fila se pliega a dos columnas */
@media (max-width: 1200px) {
    .rowcard[b-7sigidzf0z] { grid-template-columns: 1fr 1fr; }
    .rc-ops[b-7sigidzf0z] { justify-self: start; }
}

/* ══ Vista C: maestro-detalle ════════════════════════════════════════════ */
.md-layout[b-7sigidzf0z] {
    display: grid;
    grid-template-columns: 370px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.md-list[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 72vh;
    overflow: auto;
    padding-right: 2px;
}

.md-item[b-7sigidzf0z] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 9px 12px;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.md-item:hover[b-7sigidzf0z] {
    border-color: var(--rs-outline);
    box-shadow: var(--rs-shadow-sm);
}

.md-item.sel[b-7sigidzf0z] {
    border-color: var(--rs-primary);
    background: var(--rs-primary-subtle);
}

.md-item.cerrada[b-7sigidzf0z] { opacity: 0.72; }

.md-item-txt[b-7sigidzf0z] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.md-item-plate[b-7sigidzf0z] {
    font-weight: 700;
    font-size: 0.85rem;
}

.md-item-sub[b-7sigidzf0z] {
    font-size: 0.72rem;
    color: var(--rs-on-surface-variant);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.md-item-right[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
}

.md-item-sinacciones[b-7sigidzf0z] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
}

.md-detail[b-7sigidzf0z] {
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    box-shadow: var(--rs-shadow-sm);
    padding: 18px 20px;
    position: sticky;
    top: 12px;
}

.md-detail-empty[b-7sigidzf0z] {
    padding: 40px 20px;
    text-align: center;
    color: var(--rs-on-surface-muted);
}

.md-head[b-7sigidzf0z] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.md-plate[b-7sigidzf0z] {
    font-weight: 700;
    font-size: 1.2rem;
}

.md-head-spacer[b-7sigidzf0z] { flex: 1; }

.md-grid[b-7sigidzf0z] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: 12px 20px;
    margin-top: 16px;
}

.md-campo[b-7sigidzf0z] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 0.85rem;
    min-width: 0;
}

.md-campo-k[b-7sigidzf0z] {
    font-size: 0.63rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.md-campo-v[b-7sigidzf0z] { font-weight: 600; overflow-wrap: anywhere; }

.md-sec[b-7sigidzf0z] {
    margin-top: 18px;
    border-top: 1px solid var(--rs-outline-variant);
    padding-top: 14px;
}

.md-sec h3[b-7sigidzf0z] {
    margin: 0 0 10px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--rs-on-surface-variant);
    display: flex;
    align-items: center;
    gap: 7px;
}

.md-muted[b-7sigidzf0z] {
    color: var(--rs-on-surface-muted);
    font-size: 0.82rem;
}

.md-accion[b-7sigidzf0z] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 7px 0;
    font-size: 0.85rem;
}

.md-accion + .md-accion[b-7sigidzf0z] { border-top: 1px dashed var(--rs-outline-variant); }

.md-accion.hecha[b-7sigidzf0z] { opacity: 0.6; }

.md-accion-txt[b-7sigidzf0z] {
    flex: 1;
    color: var(--rs-on-surface-variant);
    overflow-wrap: anywhere;
}

.md-cierre[b-7sigidzf0z] {
    margin-top: 10px;
    font-size: 0.85rem;
}

.md-botones[b-7sigidzf0z] {
    display: flex;
    gap: 8px;
    margin-top: 18px;
    flex-wrap: wrap;
}

/* En pantallas estrechas el detalle pasa debajo de la lista */
@media (max-width: 1000px) {
    .md-layout[b-7sigidzf0z] { grid-template-columns: 1fr; }
    .md-detail[b-7sigidzf0z] { position: static; }
    .md-list[b-7sigidzf0z] { max-height: 40vh; }
}

/* /Pages/WagonStops/WorkshopGeozones.razor.rz.scp.css */
.ws-page[b-iagz3qb931] { max-width:1440px; margin:0 auto; padding:24px 28px 40px; color:var(--rs-on-surface); }
.ws-hero[b-iagz3qb931] { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:36px; padding:34px 36px; border:1px solid var(--rs-outline-variant); border-radius:24px; background:radial-gradient(ellipse at top right,var(--rs-primary-subtle),transparent 65%),var(--rs-surface); }
.ws-eyebrow[b-iagz3qb931] { font-size:10px; font-weight:750; letter-spacing:.14em; color:var(--rs-primary-text); }
.ws-hero h1[b-iagz3qb931] { font-size:clamp(26px,2.6vw,37px); letter-spacing:-.045em; line-height:1.16; margin:16px 0 12px; font-weight:750; }
.ws-hero p[b-iagz3qb931] { font-size:14px; line-height:1.75; color:var(--rs-on-surface-variant); margin:0; }
.ws-map-link[b-iagz3qb931] { display:inline-flex; gap:8px; align-items:center; color:var(--rs-primary-text); text-decoration:none; font-weight:650; font-size:12px; margin-top:22px; }
.ws-map-link:hover[b-iagz3qb931] { text-decoration:underline; }
.ws-map-link .material-icons-round[b-iagz3qb931] { font-size:18px; }
.ws-journey[b-iagz3qb931] { padding:24px 20px; background:var(--rs-surface); border:1px solid var(--rs-outline-variant); border-radius:18px; box-shadow:var(--rs-shadow-sm); }
.ws-journey .ws-eyebrow[b-iagz3qb931] { color:var(--rs-on-surface-muted); }
.ws-stops[b-iagz3qb931] { display:flex; justify-content:space-between; margin-top:24px; gap:6px; }
.ws-stops > div[b-iagz3qb931] { flex:1; text-align:center; min-width:0; }
.ws-stops div > .material-icons-round[b-iagz3qb931] { width:40px; height:40px; border:1px solid var(--rs-outline-variant); border-radius:12px; display:grid; place-items:center; margin:0 auto 10px; color:var(--rs-primary-text); background:var(--rs-primary-subtle); font-size:20px; }
.ws-stops strong[b-iagz3qb931] { font-size:12px; display:block; }
.ws-stops small[b-iagz3qb931] { display:block; margin-top:4px; font-size:10px; color:var(--rs-on-surface-muted); line-height:1.45; }
.ws-stops i[b-iagz3qb931] { color:var(--rs-outline-strong); font-style:normal; margin-top:10px; }
.ws-metrics[b-iagz3qb931] { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:20px 0 32px; }
.ws-metrics > div[b-iagz3qb931] { position:relative; padding:20px 20px 20px 78px; border:1px solid var(--rs-outline-variant); border-radius:16px; background:var(--rs-surface); }
.ws-metrics .material-icons-round[b-iagz3qb931] { position:absolute; left:20px; top:22px; display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--rs-surface-container); color:var(--rs-on-surface-variant); font-size:21px; }
.ws-metrics .ws-metric-ready .material-icons-round[b-iagz3qb931] { background:var(--rs-success-subtle); color:var(--rs-on-success-subtle); }
.ws-metrics .ws-metric-pending .material-icons-round[b-iagz3qb931] { background:var(--rs-warning-subtle); color:var(--rs-on-warning-subtle); }
.ws-metrics strong[b-iagz3qb931] { display:block; font-size:26px; letter-spacing:-.035em; font-weight:750; line-height:1.1; font-variant-numeric:tabular-nums; }
.ws-metrics em[b-iagz3qb931] { font-size:14px; color:var(--rs-on-surface-muted); font-weight:500; font-style:normal; }
.ws-metrics small[b-iagz3qb931] { display:block; font-size:11px; color:var(--rs-on-surface-variant); margin-top:6px; }
.ws-heading[b-iagz3qb931] { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.ws-heading h2[b-iagz3qb931] { font-size:20px; letter-spacing:-.025em; margin:0 0 5px; }
.ws-heading p[b-iagz3qb931] { margin:0; font-size:12px; color:var(--rs-on-surface-muted); }
.ws-count[b-iagz3qb931] { font-size:11px; padding:7px 10px; border-radius:8px; background:var(--rs-surface-container); color:var(--rs-on-surface-variant); white-space:nowrap; }
.ws-toolbar[b-iagz3qb931] { display:flex; gap:16px; align-items:center; justify-content:space-between; margin-bottom:18px; }
.ws-search[b-iagz3qb931] { display:flex; align-items:center; gap:10px; padding:0 13px; min-height:44px; border:1px solid var(--rs-outline-variant); border-radius:11px; background:var(--rs-surface); flex:1; max-width:460px; color:var(--rs-on-surface-muted); }
.ws-search:focus-within[b-iagz3qb931] { border-color:var(--rs-primary-text); outline:2px solid var(--rs-primary-subtle); }
.ws-search .material-icons-round[b-iagz3qb931] { font-size:20px; }
.ws-search input[b-iagz3qb931] { width:100%; min-width:0; border:0; outline:none; background:transparent; color:var(--rs-on-surface); font:inherit; font-size:12px; padding:12px 0; }
.ws-search input[b-iagz3qb931]::placeholder { color:var(--rs-on-surface-muted); }
.ws-filters[b-iagz3qb931] { display:flex; gap:4px; padding:4px; border:1px solid var(--rs-outline-variant); border-radius:11px; background:var(--rs-surface-container-low); }
.ws-filter[b-iagz3qb931] { border:1px solid transparent; background:transparent; color:var(--rs-on-surface-variant); padding:8px 11px; border-radius:8px; font:inherit; font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap; }
.ws-filter span[b-iagz3qb931] { margin-left:5px; font-size:10px; }
.ws-filter:hover[b-iagz3qb931] { background:var(--rs-surface-container); }
.ws-filter-active[b-iagz3qb931] { background:var(--rs-surface); border-color:var(--rs-outline-variant); color:var(--rs-primary-text); box-shadow:var(--rs-shadow-sm); }
.ws-cards[b-iagz3qb931] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ws-card[b-iagz3qb931] { border:1px solid var(--rs-outline-variant); border-radius:17px; background:var(--rs-surface); box-shadow:var(--rs-shadow-sm); transition:border-color .16s ease,box-shadow .16s ease; min-width:0; }
.ws-card:hover[b-iagz3qb931] { border-color:var(--rs-outline-strong); box-shadow:var(--rs-shadow-md); }
.ws-dirty[b-iagz3qb931] { border-color:var(--rs-primary-text); }
.ws-card-heading[b-iagz3qb931] { display:flex; gap:12px; align-items:center; padding:22px 22px 18px; }
.ws-avatar[b-iagz3qb931] { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; border-radius:13px; color:var(--rs-primary-text); background:var(--rs-primary-subtle); font-size:14px; font-weight:750; letter-spacing:-.03em; }
.ws-name[b-iagz3qb931] { min-width:0; flex:1; }
.ws-name h3[b-iagz3qb931] { font-size:15px; margin:0 0 5px; font-weight:700; overflow-wrap:anywhere; letter-spacing:-.015em; }
.ws-name small[b-iagz3qb931] { display:block; font-size:10px; color:var(--rs-on-surface-muted); }
.ws-status[b-iagz3qb931] { display:inline-flex; align-items:center; gap:6px; padding:6px 8px; border-radius:7px; font-size:10px; font-weight:700; white-space:nowrap; }
.ws-status[b-iagz3qb931]::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; }
.ws-ready[b-iagz3qb931] { color:var(--rs-on-success-subtle); background:var(--rs-success-subtle); }
.ws-pending[b-iagz3qb931] { color:var(--rs-on-warning-subtle); background:var(--rs-warning-subtle); }
.ws-fields[b-iagz3qb931] { display:grid; gap:17px; padding:0 22px 22px; }
.ws-kpis[b-iagz3qb931] { display:flex; gap:9px; padding:0 22px 18px; }
.ws-kpi[b-iagz3qb931] { display:grid; grid-template-columns:auto 1fr; column-gap:6px; align-items:center; flex:1; padding:9px 10px; border:1px solid var(--rs-outline-variant); border-radius:10px; background:var(--rs-surface-container-low); }
.ws-kpi .material-icons-round[b-iagz3qb931] { grid-row:span 2; font-size:17px; }
.ws-kpi strong[b-iagz3qb931] { font-size:16px; line-height:1; }
.ws-kpi small[b-iagz3qb931] { font-size:10px; color:var(--rs-on-surface-muted); }
.ws-kpi-stop .material-icons-round[b-iagz3qb931] { color:var(--rs-warning); } .ws-kpi-issue .material-icons-round[b-iagz3qb931] { color:var(--rs-danger); }
.ws-field[b-iagz3qb931] { min-width:0; }
.ws-field label[b-iagz3qb931] { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:650; margin-bottom:8px; }
.ws-field label .material-icons-round[b-iagz3qb931] { font-size:16px; color:var(--rs-on-surface-muted); }
.ws-field small[b-iagz3qb931] { display:block; font-size:11px; line-height:1.5; color:var(--rs-on-surface-muted); margin-top:6px; overflow-wrap:anywhere; }
.ws-field[b-iagz3qb931]  .rz-dropdown { border-radius:9px; background:var(--rs-surface-container-low); }
.ws-field[b-iagz3qb931]  .rz-dropdown-chips { gap:4px; padding:4px 6px; min-height:42px; }
.ws-field[b-iagz3qb931]  .rz-chip { border-radius:999px; background:var(--rs-primary-subtle); color:var(--rs-on-primary-subtle); font-size:11px; }
.ws-footer[b-iagz3qb931] { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 22px; border-top:1px solid var(--rs-outline-variant); background:var(--rs-surface-container-low); border-radius:0 0 17px 17px; }
.ws-save-state[b-iagz3qb931] { display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--rs-on-surface-muted); }
.ws-save-state .material-icons-round[b-iagz3qb931] { font-size:15px; }
.ws-dirty .ws-save-state[b-iagz3qb931] { color:var(--rs-primary-text); }
.ws-actions[b-iagz3qb931] { display:flex; align-items:center; gap:9px; }
.ws-actions[b-iagz3qb931]  .rz-button { border-radius:8px; }
.ws-reset[b-iagz3qb931] { background:transparent; border:0; padding:6px 0; color:var(--rs-on-surface-variant); font-size:11px; cursor:pointer; }
.ws-reset:hover[b-iagz3qb931] { color:var(--rs-primary-text); text-decoration:underline; }
.ws-note[b-iagz3qb931] { display:flex; gap:13px; align-items:flex-start; margin-top:24px; padding:18px 22px; border:1px dashed var(--rs-outline-strong); border-radius:13px; color:var(--rs-on-surface-variant); }
.ws-note > .material-icons-round[b-iagz3qb931] { font-size:22px; color:var(--rs-primary-text); }
.ws-note strong[b-iagz3qb931] { font-size:12px; }
.ws-note p[b-iagz3qb931] { font-size:12px; line-height:1.7; margin:5px 0 0; }
.ws-loading[b-iagz3qb931] { display:flex; align-items:center; justify-content:center; gap:16px; padding:70px 20px; color:var(--rs-on-surface-muted); }
.ws-empty[b-iagz3qb931] { text-align:center; padding:55px 20px; border:1px dashed var(--rs-outline-strong); border-radius:16px; margin-top:22px; background:var(--rs-surface); }
.ws-empty > .material-icons-round[b-iagz3qb931] { font-size:38px; color:var(--rs-on-surface-muted); }
.ws-empty h2[b-iagz3qb931],.ws-empty h3[b-iagz3qb931] { font-size:18px; margin:15px 0 8px; }
.ws-empty p[b-iagz3qb931] { font-size:13px; color:var(--rs-on-surface-muted); margin-bottom:20px; }
.ws-pagination[b-iagz3qb931] { display:flex; align-items:center; justify-content:space-between; margin-top:20px; font-size:12px; color:var(--rs-on-surface-variant); }
.ws-pagination > div[b-iagz3qb931] { display:flex; gap:8px; }
button:focus-visible[b-iagz3qb931],a:focus-visible[b-iagz3qb931] { outline:2px solid var(--rs-primary-text); outline-offset:3px; }
@media(min-width:1450px) { .ws-fields[b-iagz3qb931] { grid-template-columns:1fr 1fr; } }
@media(max-width:1050px) { .ws-hero[b-iagz3qb931] { grid-template-columns:1fr; gap:24px; } .ws-journey[b-iagz3qb931] { max-width:620px; width:100%; } .ws-toolbar[b-iagz3qb931] { align-items:stretch; flex-direction:column; } .ws-search[b-iagz3qb931] { max-width:none; } .ws-filters[b-iagz3qb931] { align-self:flex-start; } .ws-metrics > div[b-iagz3qb931] { padding:16px; } .ws-metrics .material-icons-round[b-iagz3qb931] { display:none; } }
@media(max-width:720px) { .ws-page[b-iagz3qb931] { padding:16px 12px 28px; } .ws-hero[b-iagz3qb931] { padding:24px 20px; border-radius:18px; } .ws-metrics[b-iagz3qb931] { grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:26px; } .ws-cards[b-iagz3qb931] { grid-template-columns:1fr; } .ws-heading[b-iagz3qb931] { align-items:flex-start; } .ws-card-heading[b-iagz3qb931] { padding:18px; flex-wrap:wrap; } .ws-fields[b-iagz3qb931] { padding:0 18px 18px; } .ws-footer[b-iagz3qb931] { padding:13px 18px; flex-wrap:wrap; } .ws-filters[b-iagz3qb931] { max-width:100%; overflow-x:auto; } .ws-name small[b-iagz3qb931] { font-size:9px; } .ws-journey[b-iagz3qb931] { padding:20px 12px; } }
@media(prefers-reduced-motion:reduce) { .ws-card[b-iagz3qb931] { transition:none; } }

.ws-heading-actions[b-iagz3qb931] { display:flex; align-items:center; gap:14px; } .ws-add-panel[b-iagz3qb931] { display:flex; align-items:center; gap:12px; padding:14px 18px; margin:0 0 18px; border:1px solid var(--rs-outline-variant); border-radius:14px; background:var(--rs-primary-subtle); } .ws-add-panel > div[b-iagz3qb931] { display:flex; flex-direction:column; gap:2px; } .ws-add-panel strong[b-iagz3qb931] { font-size:12px; } .ws-add-panel small[b-iagz3qb931] { color:var(--rs-on-surface-variant); font-size:11px; } .ws-add-panel > .material-icons-round[b-iagz3qb931] { color:var(--rs-primary-text); } .ws-edit[b-iagz3qb931] { margin-left:auto; border:0; background:transparent; color:var(--rs-on-surface-muted); cursor:pointer; } .ws-edit:hover[b-iagz3qb931] { color:var(--rs-primary-text); } @media(max-width:720px) { .ws-heading-actions[b-iagz3qb931] { width:100%; justify-content:space-between; } .ws-add-panel[b-iagz3qb931] { flex-wrap:wrap; } }
/* /Pages/WagonTrack/DateRangeFilterEditor.razor.rz.scp.css */
/* Cabecera de filtro por rango. Vive dentro del popup de Radzen, así que fija su propio ancho:
   el popup se ajusta al contenido y sin esto quedaría del ancho de la columna (140px). */
.rango-fechas[b-y5zlt148sf] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    min-width: 240px;
    padding: 0.25rem;
}

.rango-atajos[b-y5zlt148sf] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.rango-atajo[b-y5zlt148sf] {
    flex: 1 1 auto;
    padding: 0.28rem 0.5rem;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface-variant);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.rango-atajo:hover[b-y5zlt148sf] {
    background: var(--rs-surface-container-high);
    color: var(--rs-on-surface);
}

.rango-atajo.activo[b-y5zlt148sf] {
    background: var(--rs-primary);
    border-color: var(--rs-primary);
    color: var(--rs-on-primary);
}

.rango-campos[b-y5zlt148sf] {
    display: flex;
    gap: 0.4rem;
}

.rango-campo[b-y5zlt148sf] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rango-campo > span[b-y5zlt148sf] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--rs-on-surface-muted);
}

.rango-pie[b-y5zlt148sf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.4rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.rango-resumen[b-y5zlt148sf] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rango-limpiar[b-y5zlt148sf] {
    flex: 0 0 auto;
    padding: 0.2rem 0.5rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--rs-danger);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

.rango-limpiar:hover:not(:disabled)[b-y5zlt148sf] {
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}

.rango-limpiar:disabled[b-y5zlt148sf] {
    color: var(--rs-on-surface-muted);
    cursor: default;
    opacity: 0.6;
}
/* /Pages/WagonTrack/RealTripDetailDialog.razor.rz.scp.css */
/* Detalle del trayecto real. Todo el color sale de los tokens semánticos de railsider-theme.css:
   un literal se quedaría claro en modo oscuro. Los fondos *-subtle van con su --rs-on-*-subtle. */

.rt-detail[b-v3n2rvkxhw] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    color: var(--rs-on-surface);
}

.rt-loading[b-v3n2rvkxhw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 0.5rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.9rem;
}

/* ── Cabecera: quién, qué DAT, qué ruta comercial y el estado ─────────────── */

.rt-head[b-v3n2rvkxhw] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
}

.rt-head-main[b-v3n2rvkxhw] {
    min-width: 0;
}

.rt-head-title[b-v3n2rvkxhw] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.rt-head-plate[b-v3n2rvkxhw] {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    font-variant-numeric: tabular-nums;
}

.rt-head-dat[b-v3n2rvkxhw] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
}

.rt-head-sub[b-v3n2rvkxhw] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.15rem;
    font-size: 0.84rem;
    color: var(--rs-on-surface-variant);
}

.rt-head-sub .material-icons-round[b-v3n2rvkxhw] {
    font-size: 16px;
}

/* La etiqueta de estado: mismo texto y mismos tonos que en el listado. */
.rt-pill[b-v3n2rvkxhw] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.65rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 600;
    white-space: nowrap;
    border: 1px solid transparent;
    flex: 0 0 auto;
}

.rt-pill .material-icons-round[b-v3n2rvkxhw] {
    font-size: 14px;
}

.rt-badge--medido[b-v3n2rvkxhw] {
    color: var(--rs-on-success-subtle);
    background: var(--rs-success-subtle);
}

.rt-badge--heredado[b-v3n2rvkxhw] {
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
}

.rt-badge--provisional[b-v3n2rvkxhw] {
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
    border: 1px dashed var(--rs-info);
}

.rt-badge--distinto[b-v3n2rvkxhw] {
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
}

.rt-badge--pendiente[b-v3n2rvkxhw],
.rt-badge--revertido[b-v3n2rvkxhw] {
    color: var(--rs-on-neutral-subtle);
    background: var(--rs-neutral-subtle);
}

.rt-badge--sin-medir[b-v3n2rvkxhw] {
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container-low);
    border-color: var(--rs-outline-variant);
}

/* ── Secciones ─────────────────────────────────────────────────────────────── */

.rt-section[b-v3n2rvkxhw] {
    border-top: 1px solid var(--rs-outline-variant);
    padding-top: 0.65rem;
}

.rt-section-title[b-v3n2rvkxhw] {
    margin: 0 0 0.45rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rs-on-surface-variant);
}

.rt-section-title small[b-v3n2rvkxhw] {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--rs-on-surface-muted);
}

/* Comercial frente a real: tres columnas, la diferencia se marca con texto Y color. */
.rt-compare[b-v3n2rvkxhw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.rt-compare th[b-v3n2rvkxhw],
.rt-compare td[b-v3n2rvkxhw] {
    padding: 0.35rem 0.5rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px dashed var(--rs-outline-variant);
}

.rt-compare thead th[b-v3n2rvkxhw] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
    border-bottom: 1px solid var(--rs-outline);
}

.rt-compare tbody th[b-v3n2rvkxhw] {
    width: 6rem;
    font-weight: 600;
    color: var(--rs-on-surface-variant);
}

.rt-compare tbody tr:last-child th[b-v3n2rvkxhw],
.rt-compare tbody tr:last-child td[b-v3n2rvkxhw] {
    border-bottom: none;
}

.rt-compare td small[b-v3n2rvkxhw] {
    display: block;
    font-size: 0.72rem;
    color: var(--rs-on-surface-muted);
}

.rt-compare td.is-diff[b-v3n2rvkxhw] {
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    font-weight: 600;
    border-radius: 4px;
}

.rt-num[b-v3n2rvkxhw] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    font-size: 1rem;
}

/* Pares etiqueta/valor (premisas §4). */
.rt-facts[b-v3n2rvkxhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.6rem;
    margin: 0;
}

.rt-facts--center[b-v3n2rvkxhw] {
    justify-content: center;
    margin-top: 0.9rem;
}

.rt-fact[b-v3n2rvkxhw] {
    display: flex;
    flex-direction: column;
    min-width: 7rem;
}

.rt-fact-label[b-v3n2rvkxhw] {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rs-on-surface-muted);
    font-weight: 700;
}

.rt-fact-value[b-v3n2rvkxhw] {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    font-variant-numeric: tabular-nums;
}

.rt-fact.is-warn .rt-fact-value[b-v3n2rvkxhw] {
    color: var(--rs-on-warning-subtle);
}

.rt-fact.is-ok .rt-fact-value[b-v3n2rvkxhw] {
    color: var(--rs-on-success-subtle);
}

.rt-notes[b-v3n2rvkxhw],
.rt-applied-text[b-v3n2rvkxhw] {
    margin: 0.5rem 0 0;
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--rs-on-surface-variant);
}

.rt-notes[b-v3n2rvkxhw] {
    padding: 0.5rem 0.7rem;
    border-radius: 6px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
}

/* ── Vacíos: los tres dicen qué pasa y qué va a pasar ───────────────────────── */

.rt-empty[b-v3n2rvkxhw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.75rem 1.5rem;
    border: 1px dashed var(--rs-outline);
    border-radius: 14px;
    text-align: center;
    color: var(--rs-on-surface-variant);
}

.rt-empty-icon[b-v3n2rvkxhw] {
    font-size: 2.6rem;
    color: var(--rs-on-surface-muted);
    margin-bottom: 0.5rem;
}

.rt-empty h3[b-v3n2rvkxhw] {
    margin: 0 0 0.45rem;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.rt-empty p[b-v3n2rvkxhw] {
    max-width: 520px;
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
}

.rt-empty .rt-reason[b-v3n2rvkxhw] {
    margin-bottom: 0.6rem;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    font-weight: 600;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
}

/* ── Acciones ──────────────────────────────────────────────────────────────── */

.rt-actions[b-v3n2rvkxhw] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.rt-note[b-v3n2rvkxhw] {
    margin-right: auto;
    font-size: 0.78rem;
    color: var(--rs-on-surface-muted);
}

@media (max-width: 720px) {
    .rt-compare tbody th[b-v3n2rvkxhw] {
        width: auto;
    }

    .rt-fact[b-v3n2rvkxhw] {
        min-width: calc(50% - 0.8rem);
    }
}
/* /Pages/WagonTrack/WagonTrackAddDialog.razor.rz.scp.css */
.track-dialog[b-vhyjexlqpx] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ===== Previsualización del trayecto ===== */
.track-preview[b-vhyjexlqpx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 1.1rem 1rem;
    border-radius: 14px;
    background: linear-gradient(180deg, #04070f 0%, #0b1626 55%, #1b3350 100%);
    border: 1px solid #1e293b;
    transition: opacity 0.2s;
}

.track-preview.preview-empty[b-vhyjexlqpx] {
    opacity: 0.7;
}

.preview-route[b-vhyjexlqpx] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    justify-content: center;
}

.route-dot[b-vhyjexlqpx] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.route-origin[b-vhyjexlqpx] {
    background: var(--rs-success);
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.7);
}

.route-end[b-vhyjexlqpx] {
    background: var(--rs-info);
    box-shadow: 0 0 8px rgba(96, 165, 250, 0.7);
}

.preview-route-name[b-vhyjexlqpx] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rs-on-surface-inverse);
}

.preview-route-line[b-vhyjexlqpx] {
    width: 40px;
    height: 2px;
    background: repeating-linear-gradient(90deg,
        rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0.5) 4px,
        transparent 4px, transparent 8px);
}

.preview-km[b-vhyjexlqpx] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--rs-info);
    background: rgba(96, 165, 250, 0.12);
    border: 1px solid rgba(96, 165, 250, 0.3);
    padding: 0.1rem 0.6rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

/* ===== Formulario ===== */
.track-swap[b-vhyjexlqpx] {
    display: flex;
    justify-content: center;
    margin: -0.6rem 0;
}

.track-hint[b-vhyjexlqpx] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
}

.track-hint .material-icons-round[b-vhyjexlqpx] {
    font-size: 1rem;
    color: var(--rs-primary-text);
}
/* /Pages/WagonTrack/WagonTrackEditRouteDialog.razor.rz.scp.css */
.track-dialog[b-685e1q6i4n] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ===== Previsualización de la ruta resultante =====
   El fondo se queda oscuro en los dos temas, así que el texto va con --rs-on-primary
   y no con --rs-on-surface-inverse, que se invierte en modo oscuro. */
.track-preview[b-685e1q6i4n] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 1.1rem 1rem;
    border-radius: 14px;
    background: linear-gradient(180deg, #04070f 0%, #0b1626 55%, #1b3350 100%);
    border: 1px solid var(--rs-navy);
    transition: opacity 0.2s;
}

.track-preview.preview-empty[b-685e1q6i4n] {
    opacity: 0.7;
}

.preview-actual[b-685e1q6i4n] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--rs-on-primary);
    opacity: 0.65;
}

.preview-route[b-685e1q6i4n] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    justify-content: center;
}

.route-dot[b-685e1q6i4n] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.route-origin[b-685e1q6i4n] {
    background: var(--rs-success);
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.7);
}

.route-end[b-685e1q6i4n] {
    background: var(--rs-info);
    box-shadow: 0 0 8px rgba(96, 165, 250, 0.7);
}

.preview-route-name[b-685e1q6i4n] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rs-on-primary);
}

.preview-route-line[b-685e1q6i4n] {
    width: 40px;
    height: 2px;
    background: repeating-linear-gradient(90deg,
        rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0.5) 4px,
        transparent 4px, transparent 8px);
}

.preview-km[b-685e1q6i4n] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--rs-info);
    background: rgba(96, 165, 250, 0.12);
    border: 1px solid rgba(96, 165, 250, 0.3);
    padding: 0.1rem 0.6rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
}

/* ===== Formulario ===== */
.track-swap[b-685e1q6i4n] {
    display: flex;
    justify-content: center;
    margin: -0.6rem 0;
}

.track-hint[b-685e1q6i4n] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
}

.track-hint .material-icons-round[b-685e1q6i4n] {
    font-size: 1rem;
    color: var(--rs-primary-text);
}
/* /Pages/WagonTrack/WagonTrackIndex.razor.rz.scp.css */
.wt-toolbar[b-pgx1y4m09v] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.wt-kpis[b-pgx1y4m09v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.wt-kpi[b-pgx1y4m09v] {
    min-width: 110px;
    padding: 0.55rem 0.85rem;
    border-radius: 10px;
    background: var(--rs-neutral-subtle);
    border: 1px solid var(--rs-shade-subtle);
}

.wt-kpi-valor[b-pgx1y4m09v] {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.1;
}

.wt-kpi-etiqueta[b-pgx1y4m09v] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.65;
}

.wt-acciones[b-pgx1y4m09v] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.wt-kpi--aviso[b-pgx1y4m09v] {
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning);
}

.wt-lanzaderas[b-pgx1y4m09v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.wt-lanzadera-chip[b-pgx1y4m09v] {
    display: inline-flex;
    max-width: 100%;
    min-width: 0;
    align-items: center;
    gap: 0.3rem;
    padding: 0.05rem 0.45rem;
    border: 1px solid var(--rs-info);
    border-radius: 999px;
    font-size: 0.75rem;
    line-height: 1.4;
    white-space: nowrap;
    background: var(--rs-surface);
}

/* Un nombre largo ("VAGONES QUE SE QUEDARON EN …") se corta dentro del chip, con el
   nombre completo en el title, en vez de salirse de la columna. */
.wt-lanzadera-nombre[b-pgx1y4m09v] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wt-lanzadera-chip--inactiva[b-pgx1y4m09v] {
    opacity: 0.45;
}

.wt-lanzadera-dot[b-pgx1y4m09v] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.wt-empty[b-pgx1y4m09v] {
    color: var(--rs-on-surface-muted);
}

.wt-sentido[b-pgx1y4m09v] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    line-height: 1.4;
}

.wt-sentido--round[b-pgx1y4m09v] {
    color: var(--rs-primary-text);
    background: var(--rs-primary-subtle);
}

.wt-sentido--oneway[b-pgx1y4m09v] {
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
}

.wt-km[b-pgx1y4m09v] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.wt-km-mismatch[b-pgx1y4m09v] {
    color: var(--rs-on-warning-subtle);
    font-size: 0.82rem;
    font-weight: 600;
    margin-left: 0.15rem;
}

/* Icono embebido en el texto del aviso de la cabecera */
.wt-inline-icon[b-pgx1y4m09v] {
    font-size: 1rem;
    vertical-align: text-bottom;
}

/* ===== Sociedad de la ruta =====
   Solo tokens de railsider-theme.css: el tema oscuro sale solo. */
.wt-sociedad-filtro[b-pgx1y4m09v] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.wt-soc-chip[b-pgx1y4m09v] {
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    height: var(--tb-h, 38px);
    padding: 0 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.wt-soc-chip:hover[b-pgx1y4m09v] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
}

.wt-soc-chip.activo[b-pgx1y4m09v] {
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-color: transparent;
}

.wt-sociedades[b-pgx1y4m09v] {
    display: inline-flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.wt-soc-badge[b-pgx1y4m09v] {
    display: inline-flex;
    align-items: center;
    background: var(--rs-primary-subtle);
    color: var(--rs-on-primary-subtle, var(--rs-primary-text));
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
}

/* Sin clasificar se ve como lo que es: un hueco, no un valor. */
.wt-soc-vacio[b-pgx1y4m09v] {
    color: var(--rs-on-surface-muted);
    font-style: italic;
    font-size: 0.78rem;
}

.wt-soc-celda[b-pgx1y4m09v] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.wt-fila-acciones[b-pgx1y4m09v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}

/* ===== Pantalla pequeña =====
   Por debajo de 768px el grid ya pasa a tarjetas (rz-datatable-reflow, ver
   css/rs-datagrid-mobile.css). Aquí se compacta lo de alrededor: los cuatro KPI en una
   fila, los filtros en una tira desplazable y sin la ayuda de doble clic, que en un
   dedo no sirve. */
@media (max-width: 768px) {
    .wt-toolbar[b-pgx1y4m09v] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.6rem;
    }

    .wt-kpis[b-pgx1y4m09v] {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
    }

    .wt-kpi[b-pgx1y4m09v] {
        min-width: 0;
        padding: 0.4rem 0.5rem;
        border-radius: 8px;
    }

    .wt-kpi-valor[b-pgx1y4m09v] {
        font-size: 1.1rem;
    }

    .wt-kpi-etiqueta[b-pgx1y4m09v] {
        font-size: 0.6rem;
        letter-spacing: 0.02em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .wt-acciones[b-pgx1y4m09v] {
        flex-wrap: nowrap;
    }

    .wt-sociedad-filtro[b-pgx1y4m09v] {
        flex: 1 1 auto;
        flex-wrap: nowrap;
        min-width: 0;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .wt-sociedad-filtro[b-pgx1y4m09v]::-webkit-scrollbar {
        display: none;
    }

    .wt-soc-chip[b-pgx1y4m09v] {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .wt-page[b-pgx1y4m09v]  .wt-ayuda {
        display: none;
    }

    .wt-page[b-pgx1y4m09v]  .wt-card {
        padding: 0.5rem;
        margin-inline: 0 !important;
    }

    /* En la tarjeta las acciones van a la izquierda, como el resto de valores. */
    .wt-fila-acciones[b-pgx1y4m09v] {
        justify-content: flex-start;
    }
}

/* Móvil estrecho: el botón de añadir se queda en el icono y deja sitio a los filtros. */
@media (max-width: 480px) {
    .wt-page[b-pgx1y4m09v]  .wt-btn-anadir .rz-button-text {
        display: none;
    }
}
/* /Pages/WagonTrack/WagonTrackKmHistoryDialog.razor.rz.scp.css */
/* Histórico del km de una ruta. Todo el color sale de los tokens semánticos de railsider-theme.css:
   un literal se quedaría claro en modo oscuro. Los fondos *-subtle van con su --rs-on-*-subtle. */

.kmh[b-kydsaxdxua] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    color: var(--rs-on-surface);
}

.kmh-loading[b-kydsaxdxua] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 0.5rem;
    color: var(--rs-on-surface-variant);
    font-size: 0.9rem;
}

.kmh-summary[b-kydsaxdxua] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.kmh-table[b-kydsaxdxua] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.kmh-table th[b-kydsaxdxua],
.kmh-table td[b-kydsaxdxua] {
    padding: 0.4rem 0.5rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px dashed var(--rs-outline-variant);
}

.kmh-table thead th[b-kydsaxdxua] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
    border-bottom: 1px solid var(--rs-outline);
}

.kmh-table tbody tr:last-child td[b-kydsaxdxua] {
    border-bottom: none;
}

.kmh-when[b-kydsaxdxua] {
    white-space: nowrap;
    color: var(--rs-on-surface-variant);
    font-variant-numeric: tabular-nums;
}

.kmh-km[b-kydsaxdxua] {
    white-space: nowrap;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.kmh-why[b-kydsaxdxua] {
    font-weight: 600;
}

.kmh-meta[b-kydsaxdxua],
.kmh-note[b-kydsaxdxua] {
    display: block;
    font-size: 0.74rem;
    color: var(--rs-on-surface-muted);
}

.kmh-note[b-kydsaxdxua] {
    margin-top: 0.15rem;
    color: var(--rs-on-surface-variant);
}

.kmh-actions[b-kydsaxdxua] {
    text-align: right;
    white-space: nowrap;
}

.kmh-actions[b-kydsaxdxua]  .rz-button + .rz-button {
    margin-left: 0.3rem;
}

.kmh-badge[b-kydsaxdxua] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 600;
    white-space: nowrap;
}

.kmh-badge .material-icons-round[b-kydsaxdxua] {
    font-size: 14px;
}

.kmh-badge--gps[b-kydsaxdxua] {
    color: var(--rs-on-success-subtle);
    background: var(--rs-success-subtle);
}

.kmh-badge--comercial[b-kydsaxdxua] {
    color: var(--rs-on-neutral-subtle);
    background: var(--rs-neutral-subtle);
}

.kmh-sr[b-kydsaxdxua] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.kmh-empty[b-kydsaxdxua] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1.5rem;
    border: 1px dashed var(--rs-outline);
    border-radius: 14px;
    text-align: center;
    color: var(--rs-on-surface-variant);
}

.kmh-empty-icon[b-kydsaxdxua] {
    font-size: 2.4rem;
    color: var(--rs-on-surface-muted);
    margin-bottom: 0.4rem;
}

.kmh-empty h3[b-kydsaxdxua] {
    margin: 0 0 0.4rem;
    font-size: 1rem;
    color: var(--rs-on-surface);
}

.kmh-empty p[b-kydsaxdxua] {
    max-width: 480px;
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.45;
}

.kmh-empty[b-kydsaxdxua]  .kmh-empty-action {
    margin-top: 0.75rem;
}

.kmh-footer[b-kydsaxdxua] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--rs-outline-variant);
}

.kmh-hint[b-kydsaxdxua] {
    margin-right: auto;
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
}

@media (max-width: 720px) {
    .kmh-table thead[b-kydsaxdxua] {
        display: none;
    }

    .kmh-table tr[b-kydsaxdxua] {
        display: block;
        padding: 0.4rem 0;
        border-bottom: 1px dashed var(--rs-outline-variant);
    }

    .kmh-table td[b-kydsaxdxua] {
        display: block;
        border-bottom: none;
        padding: 0.15rem 0;
    }

    .kmh-actions[b-kydsaxdxua] {
        text-align: left;
    }
}
/* /Pages/WagonTrack/WagonTrackRouteCell.razor.rz.scp.css */
.wt-ruta[b-0jsxl3u0tj] {
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    min-width: 0;
}

/* Los nombres de estación no se cortan con "…": "ALCAZAR SAN J…" no dice a dónde va el
   tren. Si no caben, el destino baja a la línea siguiente y, si aun así no cabe, el
   propio nombre parte en varias líneas. */
.wt-ruta-linea[b-0jsxl3u0tj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.4rem;
    row-gap: 0.1rem;
    min-width: 0;
}

.wt-ruta-extremo[b-0jsxl3u0tj] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.wt-ruta-nombre[b-0jsxl3u0tj] {
    font-weight: 650;
    font-size: 0.92rem;
    line-height: 1.2;
    white-space: normal;
    overflow-wrap: anywhere;
}

.wt-ruta-flecha[b-0jsxl3u0tj] {
    flex: 0 0 auto;
    color: var(--rs-on-surface-variant);
    font-weight: 700;
    letter-spacing: -0.04em;
}

.wt-ruta-flecha--ida-vuelta[b-0jsxl3u0tj] {
    color: var(--rs-primary-text);
}

.wt-dot[b-0jsxl3u0tj] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.wt-dot-origin[b-0jsxl3u0tj] {
    background: var(--rs-success);
    box-shadow: 0 0 0 3px var(--rs-success-subtle);
}

.wt-dot-end[b-0jsxl3u0tj] {
    background: var(--rs-info);
    box-shadow: 0 0 0 3px var(--rs-info-subtle);
}

.wt-ruta-meta[b-0jsxl3u0tj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.45rem;
    row-gap: 0.15rem;
}

.wt-ids[b-0jsxl3u0tj],
.wt-meta-item[b-0jsxl3u0tj] {
    font-size: 0.7rem;
    color: var(--rs-on-surface-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.wt-meta-item[b-0jsxl3u0tj]::before {
    content: "·";
    margin-right: 0.45rem;
}

.wt-meta-oneway[b-0jsxl3u0tj] {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0 0.4rem;
    border-radius: 999px;
    line-height: 1.5;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
}
/* /Pages/WagonTrack/Wagon_WagonTrackIndex.razor.rz.scp.css */

/* Rastro de modificación manual en la columna Comentarios (requisito 8).
   Discreto a propósito: acompaña al comentario del usuario sin competir con él. */
.wt-modificado[b-7z8vj5lgs7] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.2rem;
    font-size: 0.7rem;
    color: var(--rs-on-surface-variant);
    font-style: italic;
}

/* El comentario propio del usuario, separado del rastro que añade el sistema. */
.wt-comentario[b-7z8vj5lgs7] {
    white-space: pre-line;
}
/* /Shared/Components/AiAnswerFeedback.razor.rz.scp.css */
/* 👍/👎 bajo cada respuesta del asistente. Tokens semánticos del tema (claro/oscuro). */

.ai-feedback[b-cwayyep2tb] {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding-top: .45rem;
    border-top: 1px dashed var(--rs-outline-variant);
}

.ai-feedback-row[b-cwayyep2tb] { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }

.ai-feedback-label[b-cwayyep2tb] { font-size: .74rem; color: var(--rs-on-surface-variant); margin-right: .2rem; }

.ai-feedback-btn[b-cwayyep2tb] {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--rs-on-surface-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.ai-feedback-btn .material-icons-round[b-cwayyep2tb] { font-size: 1rem; }
.ai-feedback-btn:hover:not(:disabled)[b-cwayyep2tb] { background: var(--rs-surface-container-high); color: var(--rs-on-surface); }
.ai-feedback-btn:disabled[b-cwayyep2tb] { opacity: .5; cursor: default; }
.ai-feedback-btn:focus-visible[b-cwayyep2tb] { outline: 2px solid var(--rs-primary); outline-offset: 1px; }

.ai-feedback-btn.is-active[b-cwayyep2tb] {
    background: var(--rs-success-subtle);
    border-color: var(--rs-success);
    color: var(--rs-on-success-subtle);
}

.ai-feedback-btn--down.is-active[b-cwayyep2tb] {
    background: var(--rs-danger-subtle);
    border-color: var(--rs-danger);
    color: var(--rs-on-danger-subtle);
}

.ai-feedback-ref[b-cwayyep2tb] { margin-left: auto; font-size: .68rem; color: var(--rs-on-surface-muted); }
.ai-feedback-ref code[b-cwayyep2tb] { font-size: .68rem; background: var(--rs-surface-container); padding: .02rem .3rem; border-radius: 4px; }

.ai-feedback-panel[b-cwayyep2tb] {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: .55rem .65rem;
    border-radius: 10px;
    background: var(--rs-surface-container-low);
    border: 1px solid var(--rs-outline-variant);
}

.ai-feedback-question[b-cwayyep2tb] { font-size: .78rem; font-weight: 700; }

.ai-feedback-reasons[b-cwayyep2tb] { display: flex; flex-wrap: wrap; gap: .3rem; }

.ai-feedback-reason[b-cwayyep2tb] {
    padding: .28rem .6rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-size: .74rem;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.ai-feedback-reason:hover[b-cwayyep2tb] { border-color: var(--rs-primary); }
.ai-feedback-reason:focus-visible[b-cwayyep2tb] { outline: 2px solid var(--rs-primary); outline-offset: 1px; }

.ai-feedback-reason.is-selected[b-cwayyep2tb] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
    font-weight: 600;
}

.ai-feedback-comment[b-cwayyep2tb] {
    resize: vertical;
    min-height: 44px;
    max-height: 140px;
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    padding: .4rem .55rem;
    font: inherit;
    font-size: .8rem;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
}

.ai-feedback-comment:focus[b-cwayyep2tb] { outline: 2px solid var(--rs-primary); outline-offset: 0; border-color: transparent; }

.ai-feedback-privacy[b-cwayyep2tb] {
    display: flex;
    align-items: flex-start;
    gap: .3rem;
    font-size: .7rem;
    line-height: 1.35;
    color: var(--rs-on-surface-variant);
}

.ai-feedback-privacy .material-icons-round[b-cwayyep2tb] { font-size: .85rem; margin-top: .05rem; }

.ai-feedback-panel-actions[b-cwayyep2tb] { display: flex; justify-content: flex-end; gap: .4rem; }

.ai-feedback-cancel[b-cwayyep2tb] {
    border: none;
    background: transparent;
    color: var(--rs-primary-text);
    font-size: .78rem;
    cursor: pointer;
    text-decoration: underline;
}

.ai-feedback-send[b-cwayyep2tb] {
    padding: .32rem .85rem;
    border-radius: 8px;
    border: none;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
}

.ai-feedback-send:disabled[b-cwayyep2tb], .ai-feedback-cancel:disabled[b-cwayyep2tb] { opacity: .45; cursor: default; }

.ai-feedback-error[b-cwayyep2tb] {
    font-size: .74rem;
    padding: .3rem .55rem;
    border-radius: 8px;
    background: var(--rs-danger-subtle);
    color: var(--rs-on-danger-subtle);
}
/* /Shared/Components/AiAssistantDrawer.razor.rz.scp.css */
/* ==========================================================================
   Asistente Hermes — cajón lateral. Tokens semánticos del tema (claro/oscuro).
   ========================================================================== */

.ai-drawer-backdrop[b-90eyu6g1yd] {
    position: fixed;
    inset: 0;
    background: var(--rs-scrim);
    z-index: 1100;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

.ai-drawer-backdrop.is-visible[b-90eyu6g1yd] { opacity: 1; pointer-events: auto; }

.ai-drawer[b-90eyu6g1yd] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 760px;
    max-width: 96vw;
    display: flex;
    flex-direction: column;
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    border-left: 1px solid var(--rs-outline-variant);
    box-shadow: var(--rs-shadow-lg);
    z-index: 1101;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.16, 1, .3, 1);
    font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.ai-drawer.is-open[b-90eyu6g1yd] { transform: translateX(0); }

/* Cabecera */
.ai-drawer-header[b-90eyu6g1yd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem 1rem;
    background: var(--rs-primary-gradient, var(--rs-primary));
    color: var(--rs-on-primary);
    flex-shrink: 0;
}

.ai-drawer-brand[b-90eyu6g1yd] { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.ai-drawer-brand-icon[b-90eyu6g1yd] { font-size: 1.6rem; opacity: .95; }
.ai-drawer-brand-text[b-90eyu6g1yd] { display: flex; flex-direction: column; min-width: 0; }
.ai-drawer-title[b-90eyu6g1yd] { font-weight: 700; font-size: .98rem; letter-spacing: -.01em; }

.ai-drawer-module[b-90eyu6g1yd] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .74rem;
    opacity: .92;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ai-drawer-module .material-icons-round[b-90eyu6g1yd] { font-size: .95rem; }

.ai-drawer-header-actions[b-90eyu6g1yd] { display: flex; gap: .25rem; }

.ai-drawer-icon-btn[b-90eyu6g1yd] {
    border: none;
    background: color-mix(in srgb, var(--rs-on-primary) 14%, transparent);
    color: var(--rs-on-primary);
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s ease;
}

.ai-drawer-icon-btn:hover:not(:disabled)[b-90eyu6g1yd] { background: color-mix(in srgb, var(--rs-on-primary) 26%, transparent); }
.ai-drawer-icon-btn:disabled[b-90eyu6g1yd] { opacity: .5; cursor: default; }
.ai-drawer-icon-btn .material-icons-round[b-90eyu6g1yd] { font-size: 1.15rem; }

.ai-drawer-banner[b-90eyu6g1yd] { padding: .65rem .9rem 0; }

/* Registro de mensajes (column-reverse: el scroll se queda abajo) */
.ai-drawer-log[b-90eyu6g1yd] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column-reverse;
    gap: .7rem;
    padding: .9rem;
    background: var(--rs-surface-container-low);
}

.ai-msg[b-90eyu6g1yd] {
    max-width: 92%;
    padding: .65rem .85rem;
    border-radius: 14px;
    font-size: .88rem;
    line-height: 1.45;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.ai-msg--user[b-90eyu6g1yd] {
    align-self: flex-end;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    border-bottom-right-radius: 4px;
    white-space: pre-wrap;
    word-break: break-word;
}

.ai-msg--assistant[b-90eyu6g1yd] {
    align-self: flex-start;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-bottom-left-radius: 4px;
    max-width: 96%;
}

.ai-msg-time[b-90eyu6g1yd] { font-size: .68rem; opacity: .6; align-self: flex-end; }
.ai-msg-footer[b-90eyu6g1yd] { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
.ai-msg-footer .ai-msg-time[b-90eyu6g1yd] { align-self: center; }
.ai-copy-btn[b-90eyu6g1yd] {
    display: inline-flex; align-items: center; gap: .2rem; padding: .1rem .4rem; border-radius: 6px;
    border: 1px solid transparent; background: transparent; color: var(--rs-on-surface-variant);
    font-size: .72rem; cursor: pointer;
}
.ai-copy-btn:hover[b-90eyu6g1yd] { border-color: var(--rs-outline-variant); background: var(--rs-surface); color: var(--rs-primary-text); }
.ai-copy-btn .material-icons-round[b-90eyu6g1yd] { font-size: .95rem; }

.ai-msg-markdown[b-90eyu6g1yd] { word-break: break-word; }
.ai-msg-markdown[b-90eyu6g1yd]  p { margin: 0 0 .5rem; }
.ai-msg-markdown[b-90eyu6g1yd]  p:last-child { margin-bottom: 0; }
.ai-msg-markdown[b-90eyu6g1yd]  ul, .ai-msg-markdown[b-90eyu6g1yd]  ol { margin: .25rem 0 .5rem 1.1rem; padding: 0; }
.ai-msg-markdown[b-90eyu6g1yd]  li { margin: .15rem 0; }
.ai-msg-markdown[b-90eyu6g1yd]  h1, .ai-msg-markdown[b-90eyu6g1yd]  h2, .ai-msg-markdown[b-90eyu6g1yd]  h3 { font-size: .95rem; margin: .5rem 0 .3rem; }
.ai-msg-markdown[b-90eyu6g1yd]  code { font-size: .8rem; background: var(--rs-surface-container-high); padding: .05rem .3rem; border-radius: 4px; }
.ai-msg-markdown[b-90eyu6g1yd]  table { border-collapse: collapse; font-size: .8rem; margin: .4rem 0; }
.ai-msg-markdown[b-90eyu6g1yd]  th, .ai-msg-markdown[b-90eyu6g1yd]  td { border: 1px solid var(--rs-outline-variant); padding: .25rem .45rem; text-align: left; }
.ai-msg-markdown[b-90eyu6g1yd]  a { color: var(--rs-primary-text); text-decoration: underline; }
.ai-msg-markdown[b-90eyu6g1yd]  blockquote { margin: .4rem 0; padding: .2rem .7rem; border-left: 3px solid var(--rs-outline); color: var(--rs-on-surface-variant); }

/* Escribiendo */
.ai-msg--typing[b-90eyu6g1yd] { flex-direction: row; align-items: center; gap: .3rem; }
.ai-typing-dot[b-90eyu6g1yd] {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--rs-on-surface-muted);
    animation: ai-typing-b-90eyu6g1yd 1.2s infinite ease-in-out;
}
.ai-typing-dot:nth-child(2)[b-90eyu6g1yd] { animation-delay: .15s; }
.ai-typing-dot:nth-child(3)[b-90eyu6g1yd] { animation-delay: .3s; }
.ai-typing-label[b-90eyu6g1yd] { margin-left: .4rem; font-size: .8rem; color: var(--rs-on-surface-variant); }
@keyframes ai-typing-b-90eyu6g1yd { 0%, 80%, 100% { transform: translateY(0); opacity: .5; } 40% { transform: translateY(-4px); opacity: 1; } }

.ai-link-btn[b-90eyu6g1yd] {
    margin-left: auto;
    border: none;
    background: transparent;
    color: var(--rs-primary-text);
    font-size: .78rem;
    cursor: pointer;
    text-decoration: underline;
}

/* Tablas de datos */
.ai-table-card[b-90eyu6g1yd] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface-container-low);
    overflow: hidden;
}

.ai-table-title[b-90eyu6g1yd] {
    display: flex; align-items: center; gap: .35rem;
    padding: .45rem .65rem;
    font-weight: 700; font-size: .8rem;
    background: var(--rs-surface-container);
}
.ai-table-title .material-icons-round[b-90eyu6g1yd] { font-size: 1rem; color: var(--rs-primary-text); }
.ai-table-count[b-90eyu6g1yd] { margin-left: auto; font-weight: 500; opacity: .65; font-size: .74rem; }
.ai-table-download[b-90eyu6g1yd] {
    display: inline-flex; align-items: center; gap: .2rem; margin-left: .4rem;
    padding: .15rem .45rem; border-radius: 6px; font-size: .72rem; font-weight: 600; cursor: pointer;
    border: 1px solid var(--rs-outline-variant); background: var(--rs-surface); color: var(--rs-primary-text);
}
.ai-table-download:hover:not(:disabled)[b-90eyu6g1yd] { background: var(--rs-primary-subtle); }
.ai-table-download:disabled[b-90eyu6g1yd] { cursor: progress; opacity: .6; }
.ai-table-download .material-icons-round[b-90eyu6g1yd] { font-size: 1rem; }
.ai-table-scroll[b-90eyu6g1yd] { overflow-x: auto; max-height: 360px; overflow-y: auto; }
.ai-table[b-90eyu6g1yd] { border-collapse: collapse; width: 100%; font-size: .78rem; }
.ai-table th[b-90eyu6g1yd] { position: sticky; top: 0; background: var(--rs-surface-container-high); text-align: left; padding: .35rem .55rem; white-space: nowrap; }
.ai-table td[b-90eyu6g1yd] { padding: .3rem .55rem; border-top: 1px solid var(--rs-outline-variant); white-space: nowrap; }
.ai-table-note[b-90eyu6g1yd], .ai-table-empty[b-90eyu6g1yd] { padding: .4rem .65rem; font-size: .74rem; color: var(--rs-on-surface-variant); }
.ai-table-description[b-90eyu6g1yd] {
    padding: .3rem .65rem; font-size: .74rem; line-height: 1.35;
    color: var(--rs-on-surface-variant);
    border-bottom: 1px solid var(--rs-outline-variant);
}
.ai-table tfoot td[b-90eyu6g1yd] { font-weight: 700; border-top: 1px solid var(--rs-outline); background: var(--rs-surface-container); }

/* Chips, fuentes, acciones */
.ai-chip[b-90eyu6g1yd] {
    display: inline-flex; align-items: center; gap: .3rem;
    padding: .35rem .7rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-size: .78rem;
    cursor: pointer;
    text-decoration: none;
    text-align: left;
    transition: background .15s ease, border-color .15s ease;
}
.ai-chip:hover:not(:disabled)[b-90eyu6g1yd] { background: var(--rs-primary-subtle); border-color: var(--rs-primary); color: var(--rs-primary-text); }
.ai-chip:disabled[b-90eyu6g1yd] { opacity: .5; cursor: default; }
.ai-chip .material-icons-round[b-90eyu6g1yd] { font-size: .95rem; }
.ai-chip--suggestion[b-90eyu6g1yd] { width: 100%; justify-content: flex-start; }
.ai-chip--link[b-90eyu6g1yd] { max-width: 100%; }

.ai-citations[b-90eyu6g1yd] { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.ai-citations-label[b-90eyu6g1yd] { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--rs-on-surface-muted); margin-right: .2rem; }

.ai-actions[b-90eyu6g1yd] { display: flex; flex-wrap: wrap; gap: .4rem; }
.ai-action-btn[b-90eyu6g1yd] {
    display: inline-flex; align-items: center; gap: .35rem;
    padding: .4rem .8rem;
    border-radius: 9px;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: .8rem; font-weight: 600;
    text-decoration: none;
}
.ai-action-btn:hover[b-90eyu6g1yd] { filter: brightness(1.08); color: var(--rs-on-primary); }
.ai-action-btn .material-icons-round[b-90eyu6g1yd] { font-size: 1rem; }

.ai-followups[b-90eyu6g1yd] { display: flex; flex-wrap: wrap; gap: .35rem; }

/* Pregunta del asistente: una opción por fila, destacada como lo que hay que contestar. */
.ai-clarify[b-90eyu6g1yd] { display: flex; flex-direction: column; gap: .35rem; }
.ai-chip--option[b-90eyu6g1yd] { width: 100%; justify-content: flex-start; border-color: var(--rs-primary); color: var(--rs-primary-text); }

/* Bienvenida */
.ai-welcome[b-90eyu6g1yd] { display: flex; flex-direction: column; gap: .6rem; padding: .5rem .25rem; }
.ai-welcome-icon[b-90eyu6g1yd] {
    width: 46px; height: 46px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    background: var(--rs-violet-subtle);
    color: var(--rs-violet);
}
.ai-welcome-icon .material-icons-round[b-90eyu6g1yd] { font-size: 1.6rem; }
.ai-welcome h3[b-90eyu6g1yd] { margin: 0; font-size: 1.05rem; }
.ai-welcome p[b-90eyu6g1yd] { margin: 0; font-size: .86rem; color: var(--rs-on-surface-variant); }
.ai-welcome-hint[b-90eyu6g1yd] { font-size: .8rem !important; }
.ai-suggestions[b-90eyu6g1yd] { display: flex; flex-direction: column; gap: .4rem; margin-top: .3rem; }

/* Pie */
.ai-drawer-footer[b-90eyu6g1yd] {
    flex-shrink: 0;
    padding: .7rem .9rem .8rem;
    border-top: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    display: flex; flex-direction: column; gap: .4rem;
}

.ai-input-row[b-90eyu6g1yd] { display: flex; gap: .5rem; align-items: flex-end; }

.ai-input[b-90eyu6g1yd] {
    flex: 1;
    resize: none;
    border: 1px solid var(--rs-outline);
    border-radius: 12px;
    padding: .55rem .75rem;
    font: inherit;
    font-size: .88rem;
    line-height: 1.4;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    min-height: 44px;
    max-height: 140px;
}

.ai-input:focus[b-90eyu6g1yd] { outline: 2px solid var(--rs-primary); outline-offset: 0; border-color: transparent; }
.ai-input:disabled[b-90eyu6g1yd] { opacity: .6; }

.ai-send-btn[b-90eyu6g1yd] {
    width: 44px; height: 44px;
    border-radius: 12px;
    border: none;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: filter .15s ease, opacity .15s ease;
}
.ai-send-btn:hover:not(:disabled)[b-90eyu6g1yd] { filter: brightness(1.1); }
.ai-send-btn:disabled[b-90eyu6g1yd] { opacity: .45; cursor: default; }

.ai-drawer-disclaimer[b-90eyu6g1yd] { font-size: .7rem; color: var(--rs-on-surface-muted); line-height: 1.3; }

@media (max-width: 600px) {
    .ai-drawer[b-90eyu6g1yd] { width: 100vw; max-width: 100vw; }
}
/* /Shared/Components/AiAssistantFab.razor.rz.scp.css */
.ai-fab[b-5lw11tohn0] {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 1090;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    height: 52px;
    padding: 0 1.1rem 0 .95rem;
    border: none;
    border-radius: 999px;
    background: var(--rs-primary-gradient, var(--rs-primary));
    color: var(--rs-on-primary);
    box-shadow: var(--rs-shadow-lg);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    font-size: .88rem;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.ai-fab:hover[b-5lw11tohn0] { transform: translateY(-2px); box-shadow: var(--rs-shadow-lg); }
.ai-fab:focus-visible[b-5lw11tohn0] { outline: 3px solid var(--rs-primary-subtle); outline-offset: 2px; }

.ai-fab.is-open[b-5lw11tohn0] { padding: 0; width: 52px; justify-content: center; right: calc(min(760px, 96vw) + 1rem); }

/* Otro panel ocupa la esquina (el cajón de mensajería). Se va del todo en lugar de
   desplazarse: apartarlo lo dejaría en mitad de la pantalla, y mientras se chatea el
   asistente no hace falta. Vuelve solo al cerrar el cajón. */
.ai-fab.is-hidden[b-5lw11tohn0] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
}

.ai-fab-icon[b-5lw11tohn0] { font-size: 1.5rem; }
.ai-fab-label[b-5lw11tohn0] { white-space: nowrap; }

.ai-fab-status[b-5lw11tohn0] {
    position: absolute;
    top: 6px;
    right: 8px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--rs-surface);
    background: var(--rs-neutral);
}

.ai-fab--ok .ai-fab-status[b-5lw11tohn0] { background: var(--rs-success); box-shadow: 0 0 0 0 var(--rs-success); animation: ai-fab-pulse-b-5lw11tohn0 2.4s infinite; }
.ai-fab--warn .ai-fab-status[b-5lw11tohn0] { background: var(--rs-warning); }
.ai-fab--off .ai-fab-status[b-5lw11tohn0] { background: var(--rs-neutral); }

@keyframes ai-fab-pulse-b-5lw11tohn0 {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--rs-success) 55%, transparent); }
    70% { box-shadow: 0 0 0 8px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}

@media (max-width: 600px) {
    .ai-fab[b-5lw11tohn0] { right: .9rem; bottom: .9rem; height: 48px; padding: 0 .9rem 0 .8rem; }
    .ai-fab-label[b-5lw11tohn0] { display: none; }
    .ai-fab.is-open[b-5lw11tohn0] { display: none; }
}

@media (max-width: 1100px) {
    .ai-fab.is-open[b-5lw11tohn0] { right: 1.25rem; }
}
/* /Shared/Components/AiOperationResult.razor.rz.scp.css */
.ai-result[b-6kxnyrhu02] {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    padding: .75rem .9rem;
    border-radius: 12px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    font-size: .88rem;
    line-height: 1.4;
}

.ai-result--compact[b-6kxnyrhu02] { padding: .5rem .7rem; font-size: .82rem; border-radius: 10px; }

.ai-result-icon[b-6kxnyrhu02] { font-size: 1.25rem; flex-shrink: 0; margin-top: .05rem; }

.ai-result--success[b-6kxnyrhu02] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); border-color: transparent; }
.ai-result--info[b-6kxnyrhu02] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); border-color: transparent; }
.ai-result--warning[b-6kxnyrhu02] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); border-color: transparent; }
.ai-result--danger[b-6kxnyrhu02] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); border-color: transparent; }

.ai-result-body[b-6kxnyrhu02] { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.ai-result-title[b-6kxnyrhu02] { font-weight: 700; }
.ai-result-message[b-6kxnyrhu02] { opacity: .95; }
.ai-result-advice[b-6kxnyrhu02] { opacity: .85; font-size: .82rem; }

.ai-result-correlation[b-6kxnyrhu02] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin-top: .25rem;
    font-size: .74rem;
    opacity: .8;
}

.ai-result-correlation .material-icons-round[b-6kxnyrhu02] { font-size: .9rem; }
.ai-result-correlation code[b-6kxnyrhu02] { font-size: .74rem; background: transparent; color: inherit; }
/* /Shared/Components/AiTableEvidence.razor.rz.scp.css */
/* Pie de una tabla del asistente: hora del dato y «Abrir en Informes». Tokens del tema (claro/oscuro). */

.ai-evidence[b-jn5ycz5k49] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    padding: .4rem .65rem;
    border-top: 1px solid var(--rs-outline-variant);
    font-size: .74rem;
    color: var(--rs-on-surface-variant);
}

.ai-evidence-time[b-jn5ycz5k49] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-variant-numeric: tabular-nums;
}

.ai-evidence-time .material-icons-round[b-jn5ycz5k49],
.ai-evidence-link .material-icons-round[b-jn5ycz5k49] { font-size: .95rem; }

.ai-evidence-link[b-jn5ycz5k49] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin-left: auto;
    font-weight: 600;
    color: var(--rs-primary-text);
    text-decoration: none;
    border-radius: 6px;
}

.ai-evidence-link:hover[b-jn5ycz5k49] { text-decoration: underline; }
.ai-evidence-link:focus-visible[b-jn5ycz5k49] { outline: 2px solid var(--rs-primary); outline-offset: 2px; }
/* /Shared/Components/ChatDrawer.razor.rz.scp.css */
/* ==========================================================================
   Chat Drawer & Unified Notification Center - Look and Feel RailSider
   Sistema de tokens semánticos con soporte de tema claro y oscuro
   Pestañas unificadas: Mensajes (Chat), Notificaciones (Alertas) y Actividad
   ========================================================================== */

/* Backdrop */
.chat-drawer-backdrop[b-rbece2gwvl] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(3px);
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.chat-drawer-backdrop.is-visible[b-rbece2gwvl] {
    opacity: 1;
    pointer-events: auto;
}

/* Drawer Container */
.chat-drawer[b-rbece2gwvl] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 440px;
    max-width: 94vw;
    background: var(--rs-surface, #ffffff);
    color: var(--rs-on-surface, #1e293b);
    border-left: 1px solid var(--rs-outline-variant, #e2e8f0);
    box-shadow: -6px 0 32px rgba(0, 0, 0, 0.16);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.chat-drawer.is-open[b-rbece2gwvl] {
    transform: translateX(0);
}

/* ===== CABECERA UNIFICADA RAILSIDER ===== */
.drawer-header.unified-header[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    padding: 14px 16px 14px 16px;
    background: var(--rs-primary-gradient, linear-gradient(135deg, #631656, #8b3d7c));
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(99, 22, 86, 0.25);
    flex-shrink: 0;
    gap: 12px;
}

.drawer-header-top[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.drawer-brand-title[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.brand-icon[b-rbece2gwvl] {
    font-size: 20px;
    color: #ffffff;
    opacity: 0.95;
}

.brand-text[b-rbece2gwvl] {
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: -0.01em;
}

/* Segmented Control Bar */
.segmented-tabs-bar[b-rbece2gwvl] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: rgba(0, 0, 0, 0.22);
    padding: 3px;
    border-radius: 9px;
    gap: 2px;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.segmented-tab[b-rbece2gwvl] {
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.82);
    padding: 7px 4px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.16s ease;
    user-select: none;
}

.segmented-tab .tab-icon[b-rbece2gwvl] {
    font-size: 16px;
}

.segmented-tab .tab-label[b-rbece2gwvl] {
    font-size: 12px;
}

.segmented-tab:hover:not(.is-active)[b-rbece2gwvl] {
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.segmented-tab.is-active[b-rbece2gwvl] {
    background: #ffffff;
    color: var(--rs-primary, #631656);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
    font-weight: 700;
}

.tab-badge[b-rbece2gwvl] {
    background: #ef4444;
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    padding: 1px 5px;
    border-radius: 999px;
    line-height: 1.2;
}

.tab-badge--muted[b-rbece2gwvl] {
    background: rgba(255, 255, 255, 0.28);
    color: #ffffff;
}

.segmented-tab.is-active .tab-badge--muted[b-rbece2gwvl] {
    background: var(--rs-surface-container, #e2e8f0);
    color: var(--rs-on-surface, #1e293b);
}

.tab-subheader[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 18px;
    background: var(--rs-surface, #ffffff);
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
    flex-shrink: 0;
}

.tab-subheader-title[b-rbece2gwvl] {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--rs-on-surface, #1e293b);
}

.tab-sub-action[b-rbece2gwvl] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-variant, #64748b);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border-radius: 6px;
    transition: all 0.15s ease;
}

.tab-sub-action:hover[b-rbece2gwvl] {
    background: var(--rs-surface-container, #f1f5f9);
    color: var(--rs-primary, #631656);
}

.drawer-subtitle[b-rbece2gwvl] {
    font-size: 12px;
    color: var(--rs-on-surface-variant, #64748b);
    display: flex;
    align-items: center;
    gap: 6px;
}

.online-indicator-dot[b-rbece2gwvl] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2dd4bf;
    box-shadow: 0 0 6px #2dd4bf;
    display: inline-block;
}

.drawer-action-btn[b-rbece2gwvl], .back-btn[b-rbece2gwvl] {
    background: rgba(255, 255, 255, 0.12);
    border: none;
    color: #ffffff;
    cursor: pointer;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
    flex-shrink: 0;
}

.drawer-action-btn:hover[b-rbece2gwvl], .back-btn:hover[b-rbece2gwvl] {
    background: rgba(255, 255, 255, 0.25);
    transform: scale(1.05);
}

/* Chat Header 1 a 1 */
.chat-header[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    background: var(--rs-primary-gradient, linear-gradient(135deg, #631656, #8b3d7c));
    color: #ffffff;
    box-shadow: 0 3px 12px rgba(99, 22, 86, 0.25);
    gap: 12px;
    flex-shrink: 0;
}

.chat-header-user[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.chat-header-info[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.chat-header-name[b-rbece2gwvl] {
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chat-header-status[b-rbece2gwvl] {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.85);
}

/* ===== SEARCH BAR ===== */
.drawer-search[b-rbece2gwvl] {
    padding: 10px 16px;
    background: var(--rs-surface-container-low, #f8fafc);
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
    flex-shrink: 0;
}

.search-input-box[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline, #cbd5e1);
    border-radius: 8px;
    padding: 7px 12px;
    gap: 8px;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.search-input-box:focus-within[b-rbece2gwvl] {
    border-color: var(--rs-primary, #631656);
    box-shadow: 0 0 0 3px var(--rs-primary-lighter, rgba(99, 22, 86, 0.12));
}

.search-input-box span[b-rbece2gwvl] {
    color: var(--rs-on-surface-muted, #94a3b8);
    font-size: 18px;
}

.search-input-box input[b-rbece2gwvl] {
    border: none;
    outline: none;
    width: 100%;
    font-size: 13px;
    color: var(--rs-on-surface, #1e293b);
    background: transparent;
    font-family: inherit;
}

.clear-search[b-rbece2gwvl] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    color: var(--rs-on-surface-muted, #94a3b8);
    display: flex;
}

.clear-search:hover[b-rbece2gwvl] {
    color: var(--rs-on-surface, #1e293b);
}

/* ===== CONTENIDO & LISTAS ===== */
.drawer-content[b-rbece2gwvl] {
    flex: 1;
    overflow-y: auto;
    background: var(--rs-surface-container-low, #f8fafc);
}

/* Contact Item */
.contact-item[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    padding: 13px 18px;
    gap: 14px;
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
    cursor: pointer;
    background: var(--rs-surface, #ffffff);
    transition: background 0.18s ease;
}

.contact-item:hover[b-rbece2gwvl] {
    background: var(--rs-surface-hover, rgba(99, 22, 86, 0.04));
}

.contact-item.has-unread[b-rbece2gwvl] {
    background: var(--rs-primary-subtle, #f5eaf3);
    border-left: 3px solid var(--rs-primary, #631656);
}

.contact-avatar-wrap[b-rbece2gwvl] {
    position: relative;
    display: inline-flex;
    flex-shrink: 0;
}

[b-rbece2gwvl] .contact-badge {
    position: absolute;
    bottom: -2px;
    right: -2px;
}

.contact-info[b-rbece2gwvl] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.contact-name-row[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.contact-name[b-rbece2gwvl] {
    font-size: 14px;
    font-weight: 600;
    color: var(--rs-on-surface, #1e293b);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contact-time[b-rbece2gwvl] {
    font-size: 11px;
    color: var(--rs-on-surface-muted, #94a3b8);
    flex-shrink: 0;
}

.contact-preview-row[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.contact-preview[b-rbece2gwvl] {
    font-size: 12px;
    color: var(--rs-on-surface-variant, #64748b);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
}

.contact-status-row[b-rbece2gwvl] {
    margin-top: 2px;
}

.contact-status[b-rbece2gwvl] {
    font-size: 11px;
    color: var(--rs-on-surface-muted, #94a3b8);
}

.contact-status--online[b-rbece2gwvl] {
    color: var(--rs-success, #16a34a);
    font-weight: 500;
}

.unread-pill[b-rbece2gwvl] {
    background: var(--rs-primary, #631656);
    color: var(--rs-on-primary, #ffffff);
    font-size: 11px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 999px;
    box-shadow: 0 1px 3px rgba(99, 22, 86, 0.3);
    flex-shrink: 0;
}

/* Loader & Empty States */
.chat-loader[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    gap: 12px;
}

.chat-loader-text[b-rbece2gwvl] {
    font-size: 13px;
    color: var(--rs-on-surface-variant, #64748b);
    font-weight: 500;
}

.empty-chat-state[b-rbece2gwvl], .activity-empty[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 50px 24px;
    text-align: center;
    gap: 8px;
}

.empty-icon-wrap[b-rbece2gwvl] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--rs-primary-subtle, #f5eaf3);
    color: var(--rs-primary, #631656);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
}

.empty-icon-wrap span[b-rbece2gwvl] {
    font-size: 28px;
}

.empty-title[b-rbece2gwvl] {
    margin: 0;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--rs-on-surface, #1e293b);
}

.empty-desc[b-rbece2gwvl] {
    margin: 0;
    font-size: 12.5px;
    color: var(--rs-on-surface-variant, #64748b);
    max-width: 260px;
}

.rs-btn-refresh[b-rbece2gwvl] {
    margin-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 8px;
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline, #cbd5e1);
    color: var(--rs-primary, #631656);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.rs-btn-refresh:hover[b-rbece2gwvl] {
    background: var(--rs-primary-subtle, #f5eaf3);
    border-color: var(--rs-primary, #631656);
}

/* ===== NOTIFICACIONES & TIMELINES ===== */
.alerts-body[b-rbece2gwvl], .activity-body[b-rbece2gwvl] {
    padding: 12px 16px;
}

.activity-section-label[b-rbece2gwvl] {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rs-on-surface-muted, #94a3b8);
    margin: 12px 0 8px 0;
}

.activity-timeline[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.alert-push-item[b-rbece2gwvl] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    border-radius: 10px;
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
    cursor: pointer;
    width: 100%;
    text-align: left;
    transition: all 0.15s ease;
}

.alert-push-item:hover[b-rbece2gwvl] {
    border-color: var(--rs-primary, #631656);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}

.alert-push-severity[b-rbece2gwvl] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.msg-push-icon[b-rbece2gwvl] {
    background: var(--rs-primary-subtle, #f5eaf3);
    color: var(--rs-primary, #631656);
}

.alert-sev-critical[b-rbece2gwvl] {
    background: #fee2e2;
    color: #ef4444;
}

.alert-sev-warning[b-rbece2gwvl] {
    background: #fef3c7;
    color: #f59e0b;
}

.alert-sev-info[b-rbece2gwvl] {
    background: #e0f2fe;
    color: #0284c7;
}

.alert-item-header[b-rbece2gwvl] {
    font-weight: 600;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.alert-from-name[b-rbece2gwvl] {
    color: var(--rs-on-surface, #1e293b);
}

.alert-module-name[b-rbece2gwvl] {
    font-weight: 400;
    color: var(--rs-on-surface-muted, #94a3b8);
    font-size: 12px;
}

.alert-unread-badge[b-rbece2gwvl] {
    margin-left: auto;
    font-size: 11px;
    font-weight: 800;
    background: var(--rs-primary, #631656);
    color: #ffffff;
    border-radius: 999px;
    padding: 1px 7px;
}

.activity-action[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}

.activity-action-badge[b-rbece2gwvl] {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 1px 6px;
    border-radius: 4px;
}

.act-green[b-rbece2gwvl] { background: #dcfce7; color: #16a34a; }
.act-blue[b-rbece2gwvl] { background: #dbeafe; color: #2563eb; }
.act-red[b-rbece2gwvl] { background: #fee2e2; color: #dc2626; }
.act-purple[b-rbece2gwvl] { background: var(--rs-primary-subtle, #f5eaf3); color: var(--rs-primary, #631656); }
.act-amber[b-rbece2gwvl] { background: #fef3c7; color: #d97706; }
.act-slate[b-rbece2gwvl] { background: #f1f5f9; color: #475569; }

.activity-entity[b-rbece2gwvl] {
    font-weight: 700;
    font-size: 13px;
    color: var(--rs-on-surface, #1e293b);
}

.activity-detail[b-rbece2gwvl] {
    font-size: 12.5px;
    color: var(--rs-on-surface-variant, #64748b);
    line-height: 1.4;
    margin-top: 2px;
}

.activity-meta[b-rbece2gwvl] {
    font-size: 11px;
    color: var(--rs-on-surface-muted, #94a3b8);
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}

.activity-date-group[b-rbece2gwvl] {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--rs-on-surface-muted, #94a3b8);
    margin: 14px 0 6px 0;
    text-transform: uppercase;
}

.activity-item[b-rbece2gwvl] {
    display: flex;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
}

.activity-icon-dot[b-rbece2gwvl] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.drawer-panel-footer[b-rbece2gwvl] {
    padding: 12px 16px;
    background: var(--rs-surface, #ffffff);
    border-top: 1px solid var(--rs-outline-variant, #e2e8f0);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.activity-view-all[b-rbece2gwvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 9px 14px;
    border-radius: 8px;
    background: var(--rs-surface-container-low, #f8fafc);
    border: 1px solid var(--rs-outline, #cbd5e1);
    color: var(--rs-primary, #631656);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.activity-view-all:hover[b-rbece2gwvl] {
    background: var(--rs-primary-subtle, #f5eaf3);
    border-color: var(--rs-primary, #631656);
}

/* ===== CONVERSACIÓN 1 A 1 ===== */
.conversation-body[b-rbece2gwvl] {
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: var(--rs-bg, #f6f6f8);
}

.empty-conversation[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    text-align: center;
    gap: 8px;
}

.empty-conversation .wave-icon[b-rbece2gwvl] {
    background: #fef3c7;
    color: #d97706;
}

.empty-sub[b-rbece2gwvl] {
    font-size: 12px;
    color: var(--rs-on-surface-variant, #64748b);
    max-width: 280px;
}

.chat-bubble-wrap[b-rbece2gwvl] {
    display: flex;
    width: 100%;
}

.chat-bubble-wrap.is-mine[b-rbece2gwvl] {
    justify-content: flex-end;
}

.chat-bubble-wrap.is-theirs[b-rbece2gwvl] {
    justify-content: flex-start;
}

.chat-bubble[b-rbece2gwvl] {
    max-width: 82%;
    padding: 10px 14px;
    border-radius: 16px;
    position: relative;
    word-break: break-word;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.chat-bubble-wrap.is-mine .chat-bubble[b-rbece2gwvl] {
    background: var(--rs-primary-gradient, linear-gradient(135deg, #631656, #8b3d7c));
    color: #ffffff;
    border-bottom-right-radius: 4px;
    box-shadow: 0 2px 8px rgba(99, 22, 86, 0.22);
}

.chat-bubble-wrap.is-theirs .chat-bubble[b-rbece2gwvl] {
    background: var(--rs-surface, #ffffff);
    color: var(--rs-on-surface, #1e293b);
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
    border-bottom-left-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.bubble-text[b-rbece2gwvl] {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.45;
    white-space: pre-wrap;
}

.bubble-meta[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    font-size: 10.5px;
    margin-top: 2px;
}

.chat-bubble-wrap.is-mine .bubble-time[b-rbece2gwvl] {
    color: rgba(255, 255, 255, 0.8);
}

.chat-bubble-wrap.is-theirs .bubble-time[b-rbece2gwvl] {
    color: var(--rs-on-surface-muted, #94a3b8);
}

.read-receipt[b-rbece2gwvl] {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.65);
}

.read-receipt.is-read[b-rbece2gwvl] {
    color: #2dd4bf;
}

/* GIF en Burbuja */
.bubble-gif-wrap[b-rbece2gwvl] {
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    max-width: 280px;
}

.bubble-gif-img[b-rbece2gwvl] {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
}

/* Adjuntos en Burbuja */
.bubble-attachments[b-rbece2gwvl] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 2px;
}

.attachment-image-card[b-rbece2gwvl] {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    max-height: 220px;
}

.attachment-image-card img[b-rbece2gwvl] {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    border-radius: 10px;
}

.image-overlay-zoom[b-rbece2gwvl] {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
    color: #ffffff;
}

.attachment-image-card:hover .image-overlay-zoom[b-rbece2gwvl] {
    opacity: 1;
}

.attachment-file-card[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.15s ease;
}

.chat-bubble-wrap.is-mine .attachment-file-card[b-rbece2gwvl] {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
}

.chat-bubble-wrap.is-mine .attachment-file-card:hover[b-rbece2gwvl] {
    background: rgba(255, 255, 255, 0.25);
}

.chat-bubble-wrap.is-theirs .attachment-file-card[b-rbece2gwvl] {
    background: var(--rs-surface-container-low, #f8fafc);
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
    color: var(--rs-on-surface, #1e293b);
}

.chat-bubble-wrap.is-theirs .attachment-file-card:hover[b-rbece2gwvl] {
    background: var(--rs-surface-container, #f1f5f9);
}

.file-info[b-rbece2gwvl] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.file-name[b-rbece2gwvl] {
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file-size[b-rbece2gwvl] {
    font-size: 10.5px;
    opacity: 0.8;
}

.download-icon[b-rbece2gwvl] {
    font-size: 18px;
}

/* ===== POPOVERS (EMOJIS & GIFS) ===== */
.popover-backdrop[b-rbece2gwvl] {
    position: fixed;
    inset: 0;
    z-index: 1005;
}

.emoji-picker-panel[b-rbece2gwvl], .gif-picker-panel[b-rbece2gwvl] {
    position: absolute;
    bottom: 120px;
    left: 16px;
    right: 16px;
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline, #cbd5e1);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    z-index: 1010;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: popoverFadeIn-b-rbece2gwvl 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes popoverFadeIn-b-rbece2gwvl {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.popover-header[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--rs-surface-container-low, #f8fafc);
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
}

.popover-title[b-rbece2gwvl] {
    font-size: 13px;
    font-weight: 700;
    color: var(--rs-on-surface, #1e293b);
}

.popover-close[b-rbece2gwvl] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-variant, #64748b);
    display: flex;
}

/* Emoji Picker Specific */
.emoji-tabs[b-rbece2gwvl] {
    display: flex;
    background: var(--rs-surface-container, #f1f5f9);
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
    padding: 2px 4px;
    gap: 4px;
    overflow-x: auto;
}

.emoji-tab[b-rbece2gwvl] {
    background: transparent;
    border: none;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 600;
    color: var(--rs-on-surface-variant, #64748b);
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}

.emoji-tab.active[b-rbece2gwvl] {
    background: var(--rs-surface, #ffffff);
    color: var(--rs-primary, #631656);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.emoji-grid[b-rbece2gwvl] {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 4px;
    padding: 10px;
    max-height: 200px;
    overflow-y: auto;
}

.emoji-item-btn[b-rbece2gwvl] {
    background: transparent;
    border: none;
    font-size: 20px;
    padding: 4px;
    border-radius: 6px;
    cursor: pointer;
    transition: transform 0.1s, background 0.1s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.emoji-item-btn:hover[b-rbece2gwvl] {
    background: var(--rs-surface-hover, rgba(99, 22, 86, 0.08));
    transform: scale(1.2);
}

/* GIF Picker Specific (Teams Style) */
.gif-header-title[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rs-primary, #631656);
}

.gif-provider-pill[b-rbece2gwvl] {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    background: var(--rs-primary-subtle, #f5eaf3);
    color: var(--rs-primary, #631656);
    padding: 2px 7px;
    border-radius: 999px;
    letter-spacing: 0.03em;
    border: 1px solid var(--rs-primary-lighter, rgba(99, 22, 86, 0.15));
}

.gif-search-box[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    background: var(--rs-surface, #ffffff);
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
    gap: 6px;
}

.gif-search-box span[b-rbece2gwvl] {
    color: var(--rs-on-surface-muted, #94a3b8);
    font-size: 18px;
}

.gif-search-box input[b-rbece2gwvl] {
    border: none;
    outline: none;
    width: 100%;
    font-size: 13px;
    background: transparent;
    color: var(--rs-on-surface, #1e293b);
}

.gif-tags-row[b-rbece2gwvl] {
    display: flex;
    gap: 6px;
    padding: 6px 12px;
    overflow-x: auto;
    background: var(--rs-surface-container-low, #f8fafc);
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
}

.gif-tag-btn[b-rbece2gwvl] {
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline, #cbd5e1);
    color: var(--rs-on-surface-variant, #64748b);
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}

.gif-tag-btn:hover[b-rbece2gwvl] {
    background: var(--rs-primary-subtle, #f5eaf3);
    border-color: var(--rs-primary, #631656);
    color: var(--rs-primary, #631656);
}

.gif-results-grid[b-rbece2gwvl] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    padding: 10px;
    max-height: 230px;
    overflow-y: auto;
    background: var(--rs-surface-container-low, #f8fafc);
}

.gif-result-card[b-rbece2gwvl] {
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    height: 100px;
    background: #e2e8f0;
    transition: transform 0.15s, box-shadow 0.15s;
}

.gif-result-card:hover[b-rbece2gwvl] {
    transform: scale(1.03);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.gif-result-card img[b-rbece2gwvl] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gif-loader[b-rbece2gwvl], .gif-empty[b-rbece2gwvl] {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 36px 12px;
    gap: 6px;
    color: var(--rs-on-surface-variant, #64748b);
    font-size: 12px;
}

/* ===== COMPOSER (Teams Style) ===== */
.drawer-composer[b-rbece2gwvl] {
    background: var(--rs-surface, #ffffff);
    border-top: 1px solid var(--rs-outline-variant, #e2e8f0);
    padding: 10px 16px 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-shrink: 0;
    position: relative;
}

.composer-toolbar[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.composer-tool-btn[b-rbece2gwvl] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-variant, #64748b);
    padding: 5px 8px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    transition: all 0.15s;
}

.composer-tool-btn:hover[b-rbece2gwvl], .composer-tool-btn.active[b-rbece2gwvl] {
    background: var(--rs-primary-subtle, #f5eaf3);
    color: var(--rs-primary, #631656);
}

.gif-badge-btn .tool-btn-label[b-rbece2gwvl] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
    background: var(--rs-primary, #631656);
    color: #ffffff;
    padding: 1px 4px;
    border-radius: 4px;
}

.composer-hint-paste[b-rbece2gwvl] {
    margin-left: auto;
    font-size: 11px;
    color: var(--rs-on-surface-muted, #94a3b8);
}

.composer-pending-uploads[b-rbece2gwvl] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.pending-upload-chip[b-rbece2gwvl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    background: var(--rs-primary-subtle, #f5eaf3);
    border: 1px solid var(--rs-primary-lighter, rgba(99, 22, 86, 0.12));
    color: var(--rs-primary, #631656);
    border-radius: 6px;
    font-size: 12px;
}

.pending-upload-chip span[b-rbece2gwvl] {
    font-size: 16px;
}

.pending-name[b-rbece2gwvl] {
    max-width: 140px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.remove-upload-btn[b-rbece2gwvl] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    color: var(--rs-primary, #631656);
    display: flex;
}

.composer-controls[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.composer-textarea[b-rbece2gwvl] {
    flex: 1;
    border: 1px solid var(--rs-outline, #cbd5e1);
    background: var(--rs-surface-container-low, #f8fafc);
    color: var(--rs-on-surface, #1e293b);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 13.5px;
    resize: none;
    outline: none;
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
    min-height: 40px;
    max-height: 120px;
}

.composer-textarea:focus[b-rbece2gwvl] {
    border-color: var(--rs-primary, #631656);
    box-shadow: 0 0 0 3px var(--rs-primary-lighter, rgba(99, 22, 86, 0.12));
    background: var(--rs-surface, #ffffff);
}

.composer-send-btn[b-rbece2gwvl] {
    background: var(--rs-primary, #631656);
    color: var(--rs-on-primary, #ffffff);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s ease;
}

.composer-send-btn:hover:not(:disabled)[b-rbece2gwvl] {
    background: var(--rs-primary-hover, #4f1145);
    transform: scale(1.05);
}

.composer-send-btn:disabled[b-rbece2gwvl] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* Modal Zoom Imagen */
.image-modal-backdrop[b-rbece2gwvl] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(5px);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.image-modal-content[b-rbece2gwvl] {
    background: var(--rs-surface, #ffffff);
    border-radius: 12px;
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}

.image-modal-header[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    border-bottom: 1px solid var(--rs-outline-variant, #e2e8f0);
}

.image-modal-title[b-rbece2gwvl] {
    font-size: 14px;
    font-weight: 600;
    color: var(--rs-on-surface, #1e293b);
}

.image-modal-close[b-rbece2gwvl] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--rs-on-surface-variant, #64748b);
    display: flex;
}

.image-modal-body[b-rbece2gwvl] {
    padding: 12px;
    overflow: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000000;
}

.image-modal-body img[b-rbece2gwvl] {
    max-width: 100%;
    max-height: 70vh;
    object-fit: contain;
}

.image-modal-footer[b-rbece2gwvl] {
    padding: 12px 18px;
    border-top: 1px solid var(--rs-outline-variant, #e2e8f0);
    display: flex;
    justify-content: flex-end;
}

.rs-btn-download[b-rbece2gwvl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 8px;
    background: var(--rs-primary, #631656);
    color: var(--rs-on-primary, #ffffff);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: background 0.15s;
}

.rs-btn-download:hover[b-rbece2gwvl] {
    background: var(--rs-primary-hover, #4f1145);
}

/* ==========================================================================
   Conversaciones de grupo y menciones
   ========================================================================== */

/* Separador entre la lista de grupos y la de compañeros. */
.group-section-label[b-rbece2gwvl] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--rs-on-surface-muted);
}

.group-section-label .material-icons-round[b-rbece2gwvl] {
    font-size: 15px;
}

.group-avatar-wrap[b-rbece2gwvl] {
    position: relative;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-primary-subtle);
}

.group-avatar-wrap--header[b-rbece2gwvl] {
    width: 38px;
    height: 38px;
    border-radius: 19px;
}

.group-avatar-icon[b-rbece2gwvl] {
    font-size: 22px;
    color: var(--rs-primary-text);
}

.group-count-pill[b-rbece2gwvl] {
    position: absolute;
    right: -2px;
    bottom: -2px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: 10px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
    border: 2px solid var(--rs-surface);
}

/* Aviso en el contacto de que ese hilo ya no es privado. */
.contact-group-chip[b-rbece2gwvl] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--rs-primary-subtle);
    color: var(--rs-on-primary-subtle);
    font-size: 10px;
    font-weight: 700;
}

.contact-group-chip .material-icons-round[b-rbece2gwvl] {
    font-size: 12px;
}

/* Tira de participantes bajo la cabecera del grupo. */
.group-participants-bar[b-rbece2gwvl] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 8px 14px;
    background: var(--rs-surface-container-low);
    border-bottom: 1px solid var(--rs-outline-variant);
}

.participant-chip[b-rbece2gwvl] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px 2px 2px;
    border-radius: 999px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    font-size: 11px;
    color: var(--rs-on-surface-variant);
    max-width: 100%;
}

.participant-chip.is-online[b-rbece2gwvl] {
    border-color: var(--rs-success);
}

.participant-name[b-rbece2gwvl] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}

.participant-late[b-rbece2gwvl] {
    font-size: 12px;
    color: var(--rs-on-surface-muted);
}

/* En grupo hace falta saber quién habla en cada burbuja ajena. */
.bubble-author[b-rbece2gwvl] {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: var(--rs-primary-text);
    margin-bottom: 2px;
}
/* /Shared/Components/ChipFilterDropdown.razor.rz.scp.css */
/* Filtro de lista en píldora + panel de casillas (equivalente al filtro de columna de Excel). */

.cfd[b-6gol11mziz] {
    position: relative;
    display: inline-flex;
}

.cfd-btn[b-6gol11mziz] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 10px 0 14px;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 999px;
    background: var(--rs-surface);
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.cfd-btn:hover[b-6gol11mziz] {
    border-color: var(--rs-outline-strong);
    color: var(--rs-on-surface);
}

.cfd.aplicado .cfd-btn[b-6gol11mziz] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary);
    color: var(--rs-primary-text);
}

.cfd-count[b-6gol11mziz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--rs-primary);
    color: var(--rs-on-primary);
    font-size: 0.68rem;
    font-weight: 800;
}

.cfd-chev[b-6gol11mziz] {
    font-size: 17px;
    color: var(--rs-on-surface-muted);
}

.cfd.aplicado .cfd-chev[b-6gol11mziz] { color: var(--rs-primary-text); }

/* El fondo invisible cierra el panel al pulsar fuera */
.cfd-backdrop[b-6gol11mziz] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: transparent;
}

.cfd-pop[b-6gol11mziz] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 1201;
    min-width: 240px;
    max-width: 320px;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline-variant);
    border-radius: 12px;
    box-shadow: var(--rs-shadow-lg);
    padding: 8px;
}

.cfd-search[b-6gol11mziz] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 8px;
    border: 1px solid var(--rs-outline);
    border-radius: 8px;
    background: var(--rs-surface-container-low);
    margin-bottom: 6px;
}

.cfd-search .material-icons-round[b-6gol11mziz] {
    font-size: 16px;
    color: var(--rs-on-surface-muted);
}

.cfd-search input[b-6gol11mziz] {
    flex: 1;
    min-width: 0;
    height: 32px;
    border: none;
    outline: none;
    background: transparent;
    color: var(--rs-on-surface);
    font-family: inherit;
    font-size: 0.82rem;
}

.cfd-search-clear[b-6gol11mziz] {
    display: inline-flex;
    border: none;
    background: transparent;
    color: var(--rs-on-surface-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 50%;
}

.cfd-search-clear:hover[b-6gol11mziz] { color: var(--rs-on-surface); }

.cfd-acciones[b-6gol11mziz] {
    display: flex;
    gap: 6px;
    padding: 0 2px 6px;
    border-bottom: 1px solid var(--rs-outline-variant);
    margin-bottom: 4px;
}

.cfd-acciones button[b-6gol11mziz] {
    flex: 1;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 7px;
    background: transparent;
    color: var(--rs-on-surface-variant);
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 4px 6px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.cfd-acciones button:hover:not(:disabled)[b-6gol11mziz] {
    background: var(--rs-surface-container);
    color: var(--rs-on-surface);
}

.cfd-acciones button:disabled[b-6gol11mziz] {
    opacity: 0.45;
    cursor: default;
}

.cfd-lista[b-6gol11mziz] {
    max-height: 260px;
    overflow-y: auto;
}

.cfd-item[b-6gol11mziz] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 0.82rem;
    color: var(--rs-on-surface);
}

.cfd-item:hover[b-6gol11mziz] { background: var(--rs-surface-container); }

.cfd-item input[b-6gol11mziz] { accent-color: var(--rs-primary); cursor: pointer; }

.cfd-item-txt[b-6gol11mziz] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfd-vacio[b-6gol11mziz] {
    padding: 10px 8px;
    font-size: 0.76rem;
    color: var(--rs-on-surface-muted);
    text-align: center;
}
/* /Shared/Components/CompanyFilterBar.razor.rz.scp.css */
/* Píldoras de sociedad: discretas en reposo, con el relleno de marca cuando filtran.
   Solo tokens de railsider-theme.css: el tema oscuro sale solo. */
.company-filter[b-w8ssrimk87] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.company-chip[b-w8ssrimk87] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-on-surface);
    font-weight: 700;
    font-size: 0.78rem;
    height: var(--tb-h, 38px);
    padding: 0 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.company-chip .material-icons-round[b-w8ssrimk87] { font-size: 0.95rem; }

.company-chip:hover[b-w8ssrimk87] {
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    border-color: var(--rs-primary-light);
}

.company-chip.active[b-w8ssrimk87] {
    background: var(--rs-primary-gradient);
    color: var(--rs-on-primary);
    border-color: transparent;
    box-shadow: var(--rs-shadow-sm);
}
/* /Shared/Components/LanzaderaFilter.razor.rz.scp.css */
.lf-root[b-fnornizm45] {
    width: 100%;
}

/* ── Barra compacta (estado plegado) ── */
.lf-bar[b-fnornizm45] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.5rem 0.6rem;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s, background 0.15s;
}

.lf-bar:hover[b-fnornizm45] { background: var(--rs-shade-subtle); }
.lf-bar:focus-visible[b-fnornizm45] { outline: 2px solid var(--rs-primary); outline-offset: 1px; }

.lf-bar.active[b-fnornizm45] { background: var(--rs-primary-subtle); }

.lf-root.is-open .lf-bar[b-fnornizm45] {
    background: var(--rs-surface);
    border-color: var(--rs-shade);
    border-bottom-color: transparent;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.lf-bar-ico[b-fnornizm45] { font-size: 1.15rem; color: var(--rs-primary-text); }
.lf-bar-title[b-fnornizm45] { font-size: 0.85rem; font-weight: 600; color: var(--rs-on-surface); }
.lf-bar-hint[b-fnornizm45] { margin-left: auto; font-size: 0.8rem; color: var(--rs-on-surface-muted); }

.lf-chip[b-fnornizm45] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rs-primary-text);
    background: var(--rs-surface);
    border: 1px solid rgba(99, 22, 86, 0.2);
    padding: 0.16rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
}

.lf-chip.warn[b-fnornizm45] { color: var(--rs-on-warning-subtle); background: var(--rs-warning-subtle); border-color: var(--rs-warning); }
.lf-chip .material-icons-round[b-fnornizm45] { font-size: 0.9rem; }

.lf-dot[b-fnornizm45] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
}

.lf-clear[b-fnornizm45] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--rs-primary-text);
    cursor: pointer;
    transition: background 0.15s;
}

.lf-clear:hover[b-fnornizm45] { background: var(--rs-primary-lighter, rgba(99, 22, 86, 0.12)); }
.lf-clear .material-icons-round[b-fnornizm45] { font-size: 1rem; }

.lf-bar-chev[b-fnornizm45] { color: var(--rs-on-surface-muted); font-size: 1.25rem; }

/* ── Panel desplegable ── */
.lf-panel[b-fnornizm45] {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.75rem 0.8rem 0.85rem;
    border: 1px solid var(--rs-shade);
    border-top: none;
    border-radius: 0 0 6px 6px;
    background: var(--rs-surface);
}

.lf-field[b-fnornizm45] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.lf-label[b-fnornizm45] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--rs-primary-text);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.lf-label .material-icons-round[b-fnornizm45] { font-size: 0.95rem; }

.lf-week[b-fnornizm45] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.lf-week-label[b-fnornizm45] {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--rs-on-surface);
    min-width: 180px;
    text-align: center;
}

.lf-warn[b-fnornizm45] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border: 1px solid var(--rs-warning-subtle);
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    align-self: center;
}

.lf-warn .material-icons-round[b-fnornizm45] { font-size: 1rem; color: var(--rs-warning); }

.lf-warn-link[b-fnornizm45] {
    font-weight: 700;
    color: var(--rs-primary-text);
    text-decoration: underline;
}

.lf-summary[b-fnornizm45] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
    border: 1px solid var(--rs-info-subtle);
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    align-self: center;
}

.lf-summary .material-icons-round[b-fnornizm45] { font-size: 1rem; }

.lf-summary-warn[b-fnornizm45] { color: var(--rs-on-warning-subtle); font-weight: 500; }
/* /Shared/Components/LanzaderaHealthCard.razor.rz.scp.css */
.lhc[b-t3duvu3d2u] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid var(--rs-outline-variant);
    border-left: 4px solid var(--rs-outline);
    background: var(--rs-surface);
    cursor: pointer;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
}

.lhc:hover[b-t3duvu3d2u] {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.12);
}

.lhc-alert-state[b-t3duvu3d2u] { border-left-color: var(--rs-danger); }
.lhc-confirmed-state[b-t3duvu3d2u] { border-left-color: var(--rs-success); }
.lhc-draft-state[b-t3duvu3d2u] { border-left-color: var(--rs-info); }
.lhc-none-state[b-t3duvu3d2u] { border-left-color: var(--rs-outline); }

.lhc-top[b-t3duvu3d2u] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
}

.lhc-name-block[b-t3duvu3d2u] { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }

.lhc-name[b-t3duvu3d2u] { font-weight: 800; font-size: 1rem; color: var(--rs-on-surface); line-height: 1.2; }

.lhc-company[b-t3duvu3d2u] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.73rem;
    color: var(--rs-on-surface-variant);
}

.lhc-company .material-icons-round[b-t3duvu3d2u] { font-size: 0.88rem; }

.lhc-chip[b-t3duvu3d2u] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.26rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
    flex: 0 0 auto;
}

.lhc-chip .material-icons-round[b-t3duvu3d2u] { font-size: 0.82rem; }

.chip-confirmed[b-t3duvu3d2u] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }
.chip-draft[b-t3duvu3d2u] { background: var(--rs-info-subtle); color: var(--rs-on-info-subtle); }
.chip-none[b-t3duvu3d2u] { background: var(--rs-surface-container); color: var(--rs-on-surface-variant); }

/* Ruta */
.lhc-route[b-t3duvu3d2u] { display: flex; align-items: center; gap: 0.45rem; min-width: 0; }

.lhc-dot[b-t3duvu3d2u] { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.dot-origin[b-t3duvu3d2u] { background: var(--rs-success); box-shadow: 0 0 0 3px #dcfce7; }
.dot-end[b-t3duvu3d2u] { background: var(--rs-info); box-shadow: 0 0 0 3px #dbeafe; }

.lhc-route-name[b-t3duvu3d2u] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lhc-route-line[b-t3duvu3d2u] {
    flex: 1;
    height: 3px;
    min-width: 18px;
    background: repeating-linear-gradient(90deg, #cbd5e1 0, #cbd5e1 6px, transparent 6px, transparent 11px);
    border-radius: 2px;
}

/* Mini tren */
.lhc-train[b-t3duvu3d2u] {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
    background: linear-gradient(180deg, #0b1626, #16283f);
    border: 1px solid #1e293b;
    overflow: hidden;
    position: relative;
}

.lhc-train[b-t3duvu3d2u]::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 7px;
    height: 2px;
    background: #3d5273;
}

.lhc-loco[b-t3duvu3d2u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px; height: 20px;
    border-radius: 5px 3px 3px 3px;
    background: linear-gradient(160deg, #8b3d7c, #631656);
    color: var(--rs-on-primary);
    z-index: 1;
    flex: 0 0 auto;
}

.lhc-loco .material-icons-round[b-t3duvu3d2u] { font-size: 0.85rem; }

.lhc-wagon[b-t3duvu3d2u] {
    width: 18px; height: 14px;
    border-radius: 3px;
    background: linear-gradient(180deg, #2a6fd4, #16407e);
    border: 1px solid rgba(255, 255, 255, 0.18);
    z-index: 1;
    flex: 0 0 auto;
}

.lhc-wagon.wagon-issue[b-t3duvu3d2u] {
    background: linear-gradient(180deg, #ef4444, #b91c1c);
    box-shadow: 0 0 6px rgba(239, 68, 68, 0.7);
}

.lhc-wagon.wagon-stop[b-t3duvu3d2u] {
    background: linear-gradient(180deg, #f59e0b, #b45309);
    box-shadow: 0 0 6px rgba(245, 158, 11, 0.6);
}

.lhc-more[b-t3duvu3d2u] {
    font-size: 0.66rem;
    font-weight: 700;
    color: var(--rs-on-surface-muted);
    z-index: 1;
    padding-left: 2px;
    font-family: 'IBM Plex Mono', monospace;
}

.lhc-empty[b-t3duvu3d2u] { font-size: 0.74rem; color: var(--rs-on-surface-variant); z-index: 1; font-style: italic; }

.lhc-count[b-t3duvu3d2u] {
    margin-left: auto;
    z-index: 1;
    background: rgba(96, 165, 250, 0.15);
    border: 1px solid rgba(96, 165, 250, 0.35);
    color: var(--rs-info);
    font-weight: 800;
    font-size: 0.72rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
    flex: 0 0 auto;
}

/* Footer */
.lhc-footer[b-t3duvu3d2u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--rs-outline-variant);
    cursor: default;
}

.lhc-alerts[b-t3duvu3d2u] { display: flex; gap: 0.35rem; flex-wrap: wrap; }

.lhc-alert[b-t3duvu3d2u] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 0.22rem 0.5rem;
    border-radius: 999px;
    text-decoration: none;
}

.lhc-alert .material-icons-round[b-t3duvu3d2u] { font-size: 0.85rem; }

.alert-issue[b-t3duvu3d2u] { background: var(--rs-danger-subtle); color: var(--rs-on-danger-subtle); }
.alert-issue:hover[b-t3duvu3d2u] { background: var(--rs-danger-subtle); }
.alert-stop[b-t3duvu3d2u] { background: var(--rs-warning-subtle); color: var(--rs-on-warning-subtle); }
.alert-stop:hover[b-t3duvu3d2u] { background: var(--rs-warning-subtle); }
.alert-ok[b-t3duvu3d2u] { background: var(--rs-success-subtle); color: var(--rs-on-success-subtle); }

/* ===== Color dot ===== */
.lhc-color-dot[b-t3duvu3d2u] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    flex: 0 0 auto;
    display: inline-block;
    border: 2px solid var(--rs-surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

/* ===== Rotaciones badges ===== */
.lhc-rotaciones[b-t3duvu3d2u] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    padding: 0.1rem 0;
}

.lhc-rot-badge[b-t3duvu3d2u] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.5rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--lhc-color, var(--rs-primary)) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--lhc-color, var(--rs-primary)) 25%, transparent);
    font-size: 0.7rem;
    color: var(--rs-on-surface);
    transition: background 0.12s;
}

.lhc-rot-badge:hover[b-t3duvu3d2u] {
    background: color-mix(in srgb, var(--lhc-color, var(--rs-primary)) 20%, transparent);
}

.lhc-rot-badge strong[b-t3duvu3d2u] {
    color: var(--lhc-color, var(--rs-primary-text));
    font-size: 0.68rem;
}

.lhc-rot-route[b-t3duvu3d2u] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}

.lhc-rot-empty[b-t3duvu3d2u] {
    font-size: 0.78rem;
    color: var(--rs-on-surface-muted);
    font-style: italic;
}
/* /Shared/Components/MentionPicker.razor.rz.scp.css */
/* Desplegable de @menciones. Se ancla al compositor que lo contiene (position: relative);
   dentro de una página `position: fixed` no vale porque `.rz-body` de Radzen lleva transform. */

.mention-popup[b-fyxlp6ddyn] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 8px;
    right: 8px;
    z-index: 40;
    max-height: 268px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline);
    border-radius: 10px;
    box-shadow: var(--rs-shadow-lg);
    padding: 4px;
}

.mention-hint[b-fyxlp6ddyn] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px 8px;
    font-size: 11px;
    line-height: 1.3;
    color: var(--rs-on-surface-muted);
    border-bottom: 1px solid var(--rs-outline-variant);
    margin-bottom: 4px;
}

.mention-hint .material-icons-round[b-fyxlp6ddyn] {
    font-size: 14px;
    color: var(--rs-primary-text);
}

.mention-empty[b-fyxlp6ddyn] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 10px;
    font-size: 12px;
    color: var(--rs-on-surface-variant);
}

.mention-empty .material-icons-round[b-fyxlp6ddyn] {
    font-size: 18px;
    color: var(--rs-on-surface-muted);
}

.mention-item[b-fyxlp6ddyn] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 6px 8px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--rs-on-surface);
    text-align: left;
    cursor: pointer;
}

.mention-item:hover[b-fyxlp6ddyn],
.mention-item.is-active[b-fyxlp6ddyn] {
    background: var(--rs-primary-subtle);
    color: var(--rs-on-primary-subtle);
}

.mention-avatar-wrap[b-fyxlp6ddyn] {
    position: relative;
    flex: 0 0 auto;
    line-height: 0;
}

.mention-online-dot[b-fyxlp6ddyn] {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rs-success);
    border: 2px solid var(--rs-surface);
}

.mention-info[b-fyxlp6ddyn] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.mention-name[b-fyxlp6ddyn] {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mention-sub[b-fyxlp6ddyn] {
    font-size: 11px;
    color: var(--rs-on-surface-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mention-item.is-active .mention-sub[b-fyxlp6ddyn],
.mention-item:hover .mention-sub[b-fyxlp6ddyn] {
    color: var(--rs-on-primary-subtle);
    opacity: .8;
}

.mention-tag[b-fyxlp6ddyn] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 999px;
    white-space: nowrap;
}

.mention-tag .material-icons-round[b-fyxlp6ddyn] {
    font-size: 12px;
}

.mention-tag--in[b-fyxlp6ddyn] {
    background: var(--rs-neutral-subtle);
    color: var(--rs-on-neutral-subtle);
}

.mention-tag--add[b-fyxlp6ddyn] {
    background: var(--rs-success-subtle);
    color: var(--rs-on-success-subtle);
}
/* /Shared/Components/UserStatusBadge.razor.rz.scp.css */
.user-status-badge[b-ahqpnss3tc] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    vertical-align: middle;
    line-height: 1;
}

.status-dot[b-ahqpnss3tc] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.status--online .status-dot[b-ahqpnss3tc] {
    background-color: #10B981;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 0 6px rgba(16, 185, 129, 0.6);
    animation: pulse-online-b-ahqpnss3tc 2s infinite;
}

.status--offline .status-dot[b-ahqpnss3tc] {
    background-color: #9CA3AF;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9);
}

.status-label[b-ahqpnss3tc] {
    font-size: 12px;
    font-weight: 500;
}

.status--online .status-label[b-ahqpnss3tc] {
    color: #059669;
}

.status--offline .status-label[b-ahqpnss3tc] {
    color: #6B7280;
}

@keyframes pulse-online-b-ahqpnss3tc {
    0% {
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6), 0 0 0 2px rgba(255, 255, 255, 0.9);
    }
    70% {
        box-shadow: 0 0 0 5px rgba(16, 185, 129, 0), 0 0 0 2px rgba(255, 255, 255, 0.9);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0), 0 0 0 2px rgba(255, 255, 255, 0.9);
    }
}
/* /Shared/DatAsignarLanzaderaDialog.razor.rz.scp.css */
/* La única ruta del día elegido: se enseña, no se pregunta. */
.dat-asig-ruta[b-pt5glwuv4u] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    font-size: 0.85rem;
}

.dat-asig-ruta-num[b-pt5glwuv4u] {
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: var(--rs-primary-subtle);
    color: var(--rs-primary-text);
    font-weight: 600;
    font-size: 0.75rem;
}

.dat-asig-ruta-meta[b-pt5glwuv4u] {
    color: var(--rs-on-surface-variant);
    font-size: 0.78rem;
}
/* /Shared/DatSemaforoBadge.razor.rz.scp.css */
.dat-semaforo[b-ap4bpgis23] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    border: 1px solid transparent;
}

.dat-semaforo-punto[b-ap4bpgis23] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}

/* Verde: el DAT está reflejado en la planificación. */
.dat-semaforo--asociado[b-ap4bpgis23] {
    color: var(--rs-on-success-subtle);
    background: var(--rs-success-subtle);
    border-color: var(--rs-success-subtle);
}

/* Naranja: asociado, pero congelado a la espera de que un gestor lo valide. */
.dat-semaforo--pendiente[b-ap4bpgis23] {
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
    border-color: var(--rs-warning-subtle);
}

/* Gris deliberado, NO rojo: un DAT sin lanzadera es un estado normal, no un fallo.
   El rojo se reserva para los imports que revientan. */
.dat-semaforo--sin-asociar[b-ap4bpgis23] {
    color: var(--rs-on-surface-variant);
    background: var(--rs-surface-container-low);
    border-color: var(--rs-outline-variant);
}

.dat-semaforo-btn[b-ap4bpgis23] {
    margin-left: 0.4rem;
}

/* A qué ruta va el DAT: lanzadera · día · Ruta N. Enlace al editor en esa semana. */
.dat-ruta-chip[b-ap4bpgis23] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: 0.4rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--rs-outline-variant);
    background: var(--rs-surface);
    color: var(--rs-primary-text);
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.dat-ruta-chip:hover[b-ap4bpgis23] {
    background: var(--rs-primary-subtle);
    border-color: var(--rs-primary-text);
}
/* /Shared/MainLayout.razor.rz.scp.css */
/* Header: no recortar los badges que se salen un poco del botón. */
[b-3he888ibs6] .rz-header {
    background: var(--rs-surface);
    border-bottom: 1px solid var(--rs-outline-variant);
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    z-index: 100;
    overflow: visible;
    min-height: 3.5rem;
}

/* Sidebar - Tema Claro */
[b-3he888ibs6] .rz-sidebar .rz-panel-menu {
    background: transparent !important;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-wrapper {
    background: transparent !important;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item {
    margin: 1px 0.5rem;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-link {
    color: var(--rs-on-surface) !important;
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
    font-size: 0.875rem;
    transition: all 0.15s ease;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-link:hover {
    background: var(--rs-surface-container) !important;
    color: var(--rs-on-surface) !important;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-link.active,
[b-3he888ibs6] .rz-sidebar .rz-state-active > .rz-navigation-item-link {
    background: var(--rs-primary-subtle) !important;
    color: var(--rs-primary-text) !important;
    font-weight: 500;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-icon {
    color: var(--rs-on-surface-muted) !important;
    margin-right: 0.6rem;
    font-size: 1.2rem;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-link:hover .rz-navigation-item-icon {
    color: var(--rs-on-surface-variant) !important;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-link.active .rz-navigation-item-icon,
[b-3he888ibs6] .rz-sidebar .rz-state-active > .rz-navigation-item-link .rz-navigation-item-icon {
    color: var(--rs-primary-text) !important;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-text {
    font-size: 0.875rem;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item-icon-children {
    color: var(--rs-on-surface-muted) !important;
}

/* Subitems */
[b-3he888ibs6] .rz-sidebar .rz-navigation-item .rz-navigation-item .rz-navigation-item-link {
    padding-left: 2.25rem;
    font-size: 0.8125rem;
}

[b-3he888ibs6] .rz-sidebar .rz-navigation-item .rz-navigation-item .rz-navigation-item-icon {
    font-size: 1rem;
}
/* /Shared/PageHeaderBar.razor.rz.scp.css */
/* Subheader de módulo. Vive dentro de RadzenBody (que es el contenedor con scroll),
   por eso el sticky se ancla a top:0 de ese contenedor y no del viewport. */
.page-header-bar[b-28ckxih138] {
    /* Esta barra es oscura también en tema claro: es un contraste buscado contra
       el contenido. En tema oscuro deja de destacar por ser negra, así que pasa a
       las superficies del tema y se separa con el borde. */
    --phb-bg: #111113;
    --phb-border: #27272a;
    --phb-surface: #18181b;
    --phb-surface-hover: #27272a;
    --phb-text: #fafafa;
    --phb-text-soft: #a1a1aa;
    --phb-text-muted: #71717a;
    --phb-accent: #b792df;
    --phb-icon-from: #d4d4d8;
    --phb-icon-to: #a1a1aa;
    --phb-icon-text: #0a0a0b;

    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 48px;
    padding: 0 20px;
    margin: 0;
    background: var(--phb-bg);
    border-bottom: 1px solid var(--phb-border);
}

.phb-left[b-28ckxih138] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0; /* deja que el título se recorte en vez de empujar los botones */
    flex: 1 1 auto;
}

.phb-icon[b-28ckxih138] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: linear-gradient(135deg, var(--phb-icon-from), var(--phb-icon-to));
    color: var(--phb-icon-text);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.phb-info[b-28ckxih138] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

/* ── Breadcrumb ─────────────────────────────────────────────────────────── */

.phb-breadcrumb ol[b-28ckxih138] {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow: hidden;
}

.phb-breadcrumb li[b-28ckxih138] {
    display: flex;
    align-items: center;
    min-width: 0;
    font-size: 11px;
    line-height: 1.4;
    color: var(--phb-text-muted);
    white-space: nowrap;
}

/* Solo el último tramo se recorta: los intermedios son cortos y sirven de contexto. */
.phb-breadcrumb li:last-child[b-28ckxih138] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.phb-breadcrumb-sep[b-28ckxih138] {
    margin: 0 6px;
    color: var(--phb-text-muted);
}

.phb-breadcrumb-link[b-28ckxih138] {
    color: var(--phb-text-muted);
    text-decoration: none;
    border-radius: 3px;
    transition: color 0.15s ease;
}

.phb-breadcrumb-link:hover[b-28ckxih138],
.phb-breadcrumb-link:focus-visible[b-28ckxih138] {
    color: var(--phb-text);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.phb-breadcrumb-current[b-28ckxih138] {
    color: var(--phb-text-soft);
    overflow: hidden;
    text-overflow: ellipsis;
}

.phb-title[b-28ckxih138] {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--phb-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Acciones ───────────────────────────────────────────────────────────── */

.phb-right[b-28ckxih138] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.phb-last-update[b-28ckxih138] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border: 1px solid var(--phb-border);
    border-radius: 6px;
    background: var(--phb-surface);
    font-size: 11px;
    color: var(--phb-text-muted);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.phb-last-update time[b-28ckxih138] {
    color: var(--phb-text-soft);
}

.phb-btn[b-28ckxih138] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--phb-border);
    border-radius: 6px;
    background: var(--phb-surface);
    color: var(--phb-text-soft);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.phb-btn:hover:not(:disabled)[b-28ckxih138] {
    background: var(--phb-surface-hover);
    color: var(--phb-text);
    border-color: var(--phb-surface-hover);
}

.phb-btn:focus-visible[b-28ckxih138] {
    outline: 2px solid var(--phb-accent);
    outline-offset: 2px;
}

.phb-btn:disabled[b-28ckxih138] {
    opacity: 0.5;
    cursor: progress;
}

.phb-btn-feedback:hover:not(:disabled)[b-28ckxih138] {
    color: var(--phb-accent);
}

@keyframes phb-spin-anim-b-28ckxih138 {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.phb-spin[b-28ckxih138] {
    animation: phb-spin-anim-b-28ckxih138 0.8s linear infinite;
    transform-origin: 50% 50%;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

/* Pantallas medias: la marca de tiempo se queda solo con el "hace X", que es el dato
   que se mira; la fecha completa sigue estando en el tooltip. */
@media (max-width: 1100px) {
    .phb-last-update-label[b-28ckxih138] {
        display: none;
    }
}

@media (max-width: 768px) {
    .page-header-bar[b-28ckxih138] {
        padding: 0 12px;
        gap: 8px;
    }

    /* En móvil el breadcrumb compite con el título por un ancho que no hay: gana el título. */
    .phb-breadcrumb[b-28ckxih138] {
        display: none;
    }

    .phb-icon[b-28ckxih138] {
        display: none;
    }

    .phb-last-update[b-28ckxih138] {
        padding: 4px 6px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .phb-spin[b-28ckxih138] {
        animation: none;
    }

    .phb-btn[b-28ckxih138],
    .phb-breadcrumb-link[b-28ckxih138] {
        transition: none;
    }
}

/* Ver el comentario de .page-header-bar: en oscuro la barra se integra con las
   superficies del tema en vez de seguir siendo un bloque negro. */
:root[data-theme="dark"] .page-header-bar[b-28ckxih138] {
    --phb-bg: var(--rs-surface-container);
    --phb-border: var(--rs-outline);
    --phb-surface: var(--rs-surface-container-high);
    --phb-surface-hover: var(--rs-outline);
    --phb-text: var(--rs-on-surface);
    --phb-text-soft: var(--rs-on-surface-variant);
    --phb-text-muted: var(--rs-on-surface-muted);
    --phb-accent: var(--rs-primary-text);
    --phb-icon-from: var(--rs-primary);
    --phb-icon-to: var(--rs-primary-light);
    --phb-icon-text: var(--rs-on-primary);
}
/* /Shared/PageHelpDialog.razor.rz.scp.css */
/* Ayuda contextual del botón «?» de la cabecera.
   El cuerpo es HTML inyectado desde el Markdown de la wiki ⇒ selectores con ::deep. */

.ayuda[b-shamtgpr8m] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

/* El cuerpo hace scroll, no el diálogo: el pie con los botones siempre queda a la vista. */
.ayuda-cuerpo[b-shamtgpr8m] {
    max-height: min(58vh, 620px);
    overflow-y: auto;
    padding-right: 0.4rem;
}

.ayuda-resumen[b-shamtgpr8m] {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--rs-on-surface-variant);
}

.ayuda-heredada[b-shamtgpr8m] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.6rem 0.8rem;
    border-radius: 10px;
    background: var(--rs-info-subtle);
    color: var(--rs-on-info-subtle);
    font-size: 0.85rem;
    line-height: 1.5;
}

.ayuda-heredada .material-icons-round[b-shamtgpr8m] {
    font-size: 1.1rem;
    flex: 0 0 auto;
}

/* ── Contenido Markdown ─────────────────────────────────────────────────── */

.ayuda-cuerpo[b-shamtgpr8m]  h2 {
    margin: 1.5rem 0 0.6rem;
    padding-top: 0.4rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--rs-on-surface);
    border-top: 1px solid var(--rs-outline-variant);
}

.ayuda-cuerpo[b-shamtgpr8m]  h2:first-child {
    margin-top: 0;
    border-top: none;
    padding-top: 0;
}

.ayuda-cuerpo[b-shamtgpr8m]  h3 {
    margin: 1.1rem 0 0.4rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rs-on-surface);
}

.ayuda-cuerpo[b-shamtgpr8m]  p {
    margin: 0.5rem 0;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    line-height: 1.65;
}

.ayuda-cuerpo[b-shamtgpr8m]  ul,
.ayuda-cuerpo[b-shamtgpr8m]  ol {
    margin: 0.5rem 0;
    padding-left: 1.3rem;
    font-size: 0.88rem;
    color: var(--rs-on-surface);
    line-height: 1.65;
}

.ayuda-cuerpo[b-shamtgpr8m]  li { margin: 0.22rem 0; }
.ayuda-cuerpo[b-shamtgpr8m]  li::marker { color: var(--rs-primary-text); }

.ayuda-cuerpo[b-shamtgpr8m]  a { color: var(--rs-primary-text); font-weight: 500; }
.ayuda-cuerpo[b-shamtgpr8m]  strong { color: var(--rs-on-surface); }

.ayuda-cuerpo[b-shamtgpr8m]  code {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 0.8em;
    background: var(--rs-surface-container);
    border-radius: 5px;
    padding: 1px 6px;
    color: var(--rs-primary-text);
}

.ayuda-cuerpo[b-shamtgpr8m]  kbd {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 0.75em;
    background: var(--rs-surface);
    border: 1px solid var(--rs-outline);
    border-bottom-width: 2px;
    border-radius: 5px;
    padding: 1px 6px;
    color: var(--rs-on-surface);
}

.ayuda-cuerpo[b-shamtgpr8m]  blockquote {
    margin: 0.8rem 0;
    padding: 0.6rem 0.9rem;
    border-left: 4px solid var(--rs-primary);
    background: var(--rs-surface-container-low);
    border-radius: 0 10px 10px 0;
}

.ayuda-cuerpo[b-shamtgpr8m]  blockquote p { margin: 0.2rem 0; color: var(--rs-on-surface); }

.ayuda-cuerpo[b-shamtgpr8m]  table {
    width: 100%;
    margin: 0.8rem 0;
    border-collapse: collapse;
    font-size: 0.82rem;
    display: block;
    overflow-x: auto;
}

.ayuda-cuerpo[b-shamtgpr8m]  th {
    text-align: left;
    padding: 7px 10px;
    background: var(--rs-surface-container-low);
    color: var(--rs-on-surface);
    border-bottom: 2px solid var(--rs-outline-variant);
    white-space: nowrap;
}

.ayuda-cuerpo[b-shamtgpr8m]  td {
    padding: 7px 10px;
    border-bottom: 1px solid var(--rs-outline-variant);
    color: var(--rs-on-surface);
    vertical-align: top;
}

.ayuda-cuerpo[b-shamtgpr8m]  img {
    max-width: 100%;
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    margin: 0.5rem 0;
}

/* Los diagramas SVG de la wiki se dibujan a ancho completo. */
.ayuda-cuerpo[b-shamtgpr8m]  .manual-diagrama {
    margin: 0.8rem 0;
    overflow-x: auto;
}

.ayuda-cuerpo[b-shamtgpr8m]  .manual-diagrama svg {
    max-width: 100%;
    height: auto;
}

.ayuda-cuerpo[b-shamtgpr8m]  hr {
    border: none;
    border-top: 1px solid var(--rs-outline-variant);
    margin: 1.2rem 0;
}

/* ── Preguntas frecuentes plegadas ──────────────────────────────────────── */

.ayuda-faq[b-shamtgpr8m] {
    border: 1px solid var(--rs-outline-variant);
    border-radius: 10px;
    background: var(--rs-surface-container-low);
}

.ayuda-faq summary[b-shamtgpr8m] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.6rem 0.85rem;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--rs-on-surface);
    user-select: none;
}

.ayuda-faq summary:hover[b-shamtgpr8m] { color: var(--rs-primary-text); }
.ayuda-faq summary .material-icons-round[b-shamtgpr8m] { font-size: 1.1rem; }
.ayuda-faq .ayuda-cuerpo[b-shamtgpr8m] { padding: 0 0.85rem 0.7rem; max-height: min(40vh, 420px); }

/* ── Sin ficha ──────────────────────────────────────────────────────────── */

.ayuda-vacio[b-shamtgpr8m] {
    text-align: center;
    padding: 1.6rem 1rem;
    color: var(--rs-on-surface-variant);
}

.ayuda-vacio .material-icons-round[b-shamtgpr8m] {
    font-size: 2.6rem;
    color: var(--rs-outline-strong);
}

.ayuda-vacio p[b-shamtgpr8m] { margin: 0.5rem 0 0; font-size: 0.92rem; color: var(--rs-on-surface); }
.ayuda-vacio-sub[b-shamtgpr8m] { font-size: 0.84rem !important; color: var(--rs-on-surface-muted) !important; }

/* ── Pie ────────────────────────────────────────────────────────────────── */

.ayuda-pie[b-shamtgpr8m] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--rs-outline-variant);
}

@media (max-width: 560px) {
    .ayuda-pie[b-shamtgpr8m] { flex-direction: column-reverse; }
    .ayuda-cuerpo[b-shamtgpr8m] { max-height: 62vh; }
}
/* /Shared/RealTripKmBadge.razor.rz.scp.css */
/* Km reales de un viaje. Todo el color sale de los tokens de railsider-theme.css: un fondo
   *-subtle va siempre con su --rs-on-*-subtle, y el estado lleva texto además del color. */

.rt-km[b-4q0qv80efm] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    width: 100%;
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    color: var(--rs-on-surface);
    text-align: right;
    cursor: pointer;
}

.rt-km:focus-visible[b-4q0qv80efm] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
    border-radius: 4px;
}

.rt-km--none[b-4q0qv80efm] {
    color: var(--rs-on-surface-muted);
    cursor: default;
}

.rt-km-value[b-4q0qv80efm] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    min-width: 2.2rem;
}

.rt-badge[b-4q0qv80efm] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    border: 1px solid transparent;
}

.rt-badge .material-icons-round[b-4q0qv80efm] {
    font-size: 12px;
}

/* Verde: medido con el GPS del propio vagón. */
.rt-badge--medido .rt-badge[b-4q0qv80efm] {
    color: var(--rs-on-success-subtle);
    background: var(--rs-success-subtle);
}

/* Azul: sin GPS propio, hereda la media del tren. */
.rt-badge--heredado .rt-badge[b-4q0qv80efm] {
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
}

/* Azul con borde discontinuo: el vagón ya llegó, pero el tren no está cerrado. */
.rt-badge--provisional .rt-badge[b-4q0qv80efm] {
    color: var(--rs-on-info-subtle);
    background: var(--rs-info-subtle);
    border: 1px dashed var(--rs-info);
}

/* Naranja: otro trayecto u otra distancia que la del DAT. */
.rt-badge--distinto .rt-badge[b-4q0qv80efm] {
    color: var(--rs-on-warning-subtle);
    background: var(--rs-warning-subtle);
}

/* Gris: el viaje sigue abierto, o alguien deshizo lo aplicado. No es un fallo. */
.rt-badge--pendiente .rt-badge[b-4q0qv80efm],
.rt-badge--revertido .rt-badge[b-4q0qv80efm] {
    color: var(--rs-on-neutral-subtle);
    background: var(--rs-neutral-subtle);
}

/* Apagado: no se pudo medir y explotación sigue con el comercial. */
.rt-badge--sin-medir .rt-badge[b-4q0qv80efm] {
    color: var(--rs-on-surface-muted);
    background: var(--rs-surface-container-low);
    border-color: var(--rs-outline-variant);
}

.rt-badge--pendiente .rt-km-value[b-4q0qv80efm],
.rt-badge--sin-medir .rt-km-value[b-4q0qv80efm],
.rt-badge--revertido .rt-km-value[b-4q0qv80efm] {
    color: var(--rs-on-surface-muted);
    font-weight: 500;
}
/* /Shared/Wagon3dDialog.razor.rz.scp.css */
.w3d-container[b-k8zes51tyd] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    height: min(84vh, 850px);
    margin: -0.5rem;
}

.w3d-toolbar[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    background: var(--rs-surface-container, rgba(0, 0, 0, 0.04));
    border-radius: 8px;
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
}

.w3d-selector[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.w3d-chip[b-k8zes51tyd] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.65rem;
    border-radius: 6px;
    border: 1px solid var(--rs-outline-variant, #cbd5e1);
    background: var(--rs-surface, #ffffff);
    color: var(--rs-on-surface, #1e293b);
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}

.w3d-chip:hover[b-k8zes51tyd] {
    border-color: var(--rs-primary, #631656);
    background: var(--rs-primary-subtle, rgba(99, 22, 86, 0.08));
}

.w3d-chip.active[b-k8zes51tyd] {
    background: var(--rs-primary, #631656);
    color: var(--rs-on-primary, #ffffff);
    border-color: var(--rs-primary, #631656);
}

.w3d-chip-badge[b-k8zes51tyd] {
    font-weight: 700;
    letter-spacing: 0.02em;
}

.w3d-chip-label[b-k8zes51tyd] {
    opacity: 0.88;
    font-size: 0.76rem;
}

.w3d-actions[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.w3d-action-btn[b-k8zes51tyd] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3rem 0.6rem;
    border-radius: 5px;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--rs-primary-text, var(--rs-on-surface));
    text-decoration: none;
    border: 1px solid var(--rs-outline-variant, #cbd5e1);
    background: var(--rs-surface, #ffffff);
    cursor: pointer;
    transition: all 0.15s ease;
}

.w3d-action-btn:hover[b-k8zes51tyd] {
    background: var(--rs-primary-subtle, rgba(99, 22, 86, 0.08));
    border-color: var(--rs-primary, #631656);
}

.w3d-controls-bar[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.3rem 0.6rem;
    background: var(--rs-surface, #ffffff);
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
    border-radius: 6px;
    font-size: 0.8rem;
}

.w3d-control-group[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.w3d-control-title[b-k8zes51tyd] {
    font-weight: 600;
    color: var(--rs-on-surface-variant, #64748b);
    font-size: 0.78rem;
}

.w3d-select[b-k8zes51tyd] {
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    border: 1px solid var(--rs-outline-variant, #cbd5e1);
    background: var(--rs-surface, #ffffff);
    color: var(--rs-on-surface, #1e293b);
    font-size: 0.78rem;
}

.w3d-range[b-k8zes51tyd] {
    width: 90px;
    accent-color: var(--rs-primary, #631656);
    cursor: pointer;
}

.w3d-range-val[b-k8zes51tyd] {
    font-size: 0.76rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    min-width: 3.2rem;
    color: var(--rs-on-surface, #1e293b);
}

.w3d-nav-buttons[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.w3d-nav-btn[b-k8zes51tyd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    border: 1px solid var(--rs-outline-variant, #cbd5e1);
    background: var(--rs-surface, #ffffff);
    color: var(--rs-on-surface, #1e293b);
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.w3d-nav-btn:hover[b-k8zes51tyd] {
    border-color: var(--rs-primary, #631656);
    color: var(--rs-primary-text, #631656);
    background: var(--rs-primary-subtle, rgba(99, 22, 86, 0.08));
}

.w3d-stage[b-k8zes51tyd] {
    flex: 1;
    min-height: 420px;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: var(--rs-bg, #f8fafc);
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
}

.w3d-viewport[b-k8zes51tyd] {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
}

.w3d-systems-bar[b-k8zes51tyd] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    padding: 0.15rem 0.3rem;
    font-size: 0.74rem;
}

.w3d-sys-chip[b-k8zes51tyd] {
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    border: 1px solid var(--rs-outline-variant, #cbd5e1);
    background: var(--rs-surface, #ffffff);
    color: var(--rs-on-surface-variant, #64748b);
    font-size: 0.74rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}

.w3d-sys-chip:hover[b-k8zes51tyd] {
    border-color: var(--rs-primary, #631656);
}

.w3d-sys-chip.active[b-k8zes51tyd] {
    background: var(--rs-primary-subtle, rgba(99, 22, 86, 0.08));
    color: var(--rs-primary-text, #631656);
    border-color: var(--rs-primary, #631656);
    font-weight: 600;
}

.w3d-selection-footer[b-k8zes51tyd] {
    padding: 0.35rem 0.6rem;
    background: var(--rs-surface-container, rgba(0, 0, 0, 0.03));
    border-radius: 6px;
    border: 1px solid var(--rs-outline-variant, #e2e8f0);
    font-size: 0.76rem;
    color: var(--rs-on-surface, #1e293b);
    min-height: 1.8rem;
    display: flex;
    align-items: center;
}

.w3d-piece-name[b-k8zes51tyd] {
    font-weight: 700;
    color: var(--rs-primary-text, #631656);
}

.w3d-piece-ref[b-k8zes51tyd] {
    color: var(--rs-on-surface-variant, #475569);
}

.w3d-piece-hint[b-k8zes51tyd] {
    color: var(--rs-on-surface-muted, #94a3b8);
    font-style: italic;
}

/* /Shared/WagonPlateLink.razor.rz.scp.css */
/* Mismo aspecto que el .uic-link de /wagons y /flota, pero como componente reutilizable. */
.plate-link[b-6iyz2th1li] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--rs-primary-text);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    text-underline-offset: 2px;
    white-space: nowrap;
}

/* Sin subrayado en reposo: en una tabla con una matrícula por fila el subrayado permanente
   convertía la columna en un bloque rayado. La pista aparece al apuntar o al llegar por
   teclado, que es cuando el usuario se pregunta si aquello es pulsable. */
.plate-link:hover[b-6iyz2th1li],
.plate-link:focus-visible[b-6iyz2th1li] {
    text-decoration: underline;
}

.plate-link:focus-visible[b-6iyz2th1li] {
    outline: 2px solid var(--rs-primary);
    outline-offset: 2px;
    border-radius: 3px;
}

.plate-empty[b-6iyz2th1li] {
    color: var(--rs-on-surface-muted);
}
