/* =====================================================================================
   Marketing · Estatus: Creación, Validación y Validación por bróker (Pages/marketing/)
   Global y no .razor.css: index.html no carga el bundle de estilos aislados
   (SOCAsesores.ValorSOC.BlazorClient.styles.css), así que un .razor.css no se aplica.
   ===================================================================================== */

.mkt-estatus-page .mkt-estatus-list-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 1rem;
}

.mkt-estatus-page .mkt-estatus-list-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--soc-page-title-color);
}

/* Buscadores chicos (listado e historial): ancho fijo, no el de la tabla. */
.mkt-estatus-page .mkt-estatus-search {
    position: relative;
    flex: 0 0 auto;
    width: 220px;
    max-width: 100%;
    margin-left: auto;
}

.mkt-estatus-page .mkt-estatus-search i {
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9rem;
    color: #6b7280;
    pointer-events: none;
}

.mkt-estatus-page .mkt-estatus-search input {
    width: 100%;
    padding-left: 28px;
}

.mkt-estatus-page .mkt-estatus-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 1rem;
}

.mkt-estatus-page .mkt-estatus-toolbar__right {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.mkt-estatus-page .mkt-estatus-observaciones {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 600;
    cursor: pointer;
}

.mkt-estatus-page .mkt-estatus-observaciones .form-check-input {
    margin: 0;
}

/* Pestañas a la izquierda y "Nuevo estatus" a la derecha, sobre la misma línea: la línea gris de
   las pestañas pasa al contenedor para que el botón quede a su altura. */
.mkt-estatus-page .mkt-estatus-tabs-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px 12px;
    margin-bottom: 1rem;
    border-bottom: 2px solid #e5e7eb;
}

/* Sin overflow: con el margin-bottom de -2px de .soc-tab-btn (para tapar la línea gris) un
   overflow-x: auto dibuja una barra de scroll. En pantallas angostas las pestañas bajan de línea. */
.mkt-estatus-page .mkt-estatus-tabs-row .mkt-estatus-tabs {
    flex-wrap: wrap;
    min-width: 0;
    margin-bottom: 0;
    border-bottom: none;
}

.mkt-estatus-page .mkt-estatus-new-btn {
    margin-left: auto;
    margin-bottom: 6px;
}

.mkt-estatus-page .mkt-estatus-hint {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.mkt-estatus-page .mkt-estatus-cell-input {
    width: 100%;
    min-width: 0;
    padding: 4px 8px;
}

.mkt-estatus-page .mkt-estatus-cell-input--pct {
    max-width: 80px;
}

/* Switch de "Observaciones" centrado en la celda, sin el margen izquierdo de .form-check. */
.mkt-estatus-page .mkt-estatus-switch {
    display: flex;
    justify-content: center;
    margin: 0;
    padding-left: 0;
}

.mkt-estatus-page .mkt-estatus-switch .form-check-input {
    margin: 0;
    float: none;
    cursor: pointer;
}

.mkt-estatus-page .mkt-estatus-switch .form-check-input:disabled {
    cursor: default;
    opacity: 0.75;
}

.mkt-estatus-page .mkt-estatus-total--ok {
    color: #15803d;
}

.mkt-estatus-page .mkt-estatus-total--pending {
    color: #b45309;
}

.mkt-estatus-page .mkt-estatus-total--error {
    color: #b91c1c;
}

/* La ventana de Observaciones se dibuja fuera de la página (TelerikWindow), sin .mkt-estatus-page. */
.mkt-estatus-observacion-text {
    resize: vertical;
    min-height: 120px;
}

/* =====================================================================================
   Marketing · Validación de Estatus (Pages/marketing/EstatusValidacion.razor)
   ===================================================================================== */

.mkt-validacion-page .mkt-validacion-filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px 16px;
    align-items: end;
}

.mkt-validacion-page .mkt-validacion-filters__action {
    display: flex;
    align-items: end;
    gap: 8px;
}

.mkt-validacion-page .mkt-validacion-hint {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
    color: #6b7280;
}

.mkt-validacion-page .mkt-validacion-title {
    margin: 0 0 1rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--soc-page-title-color);
}

/* =====================================================================================
   Marketing · Validación por bróker (Pages/marketing/EstatusValidacionBroker.razor)
   Evidencia (texto y vista) va sin .mkt-broker-page: vive en una TelerikWindow, fuera de la página.
   ===================================================================================== */

.mkt-broker-page .mkt-broker-header {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 40px;
}

/* Card 1: pestañas debajo de la información del bróker. */
.mkt-broker-page .mkt-broker-tabs {
    margin-top: 1.25rem;
}

.mkt-broker-page .mkt-broker-card-title {
    margin: 0 0 1rem;
    font-size: 1.05rem;
    font-weight: 700;
    text-align: center;
    color: var(--soc-page-title-color);
}

.mkt-broker-page .mkt-broker-card-title--left {
    text-align: left;
}

/* Card 2: dona a la izquierda, evidencias a la derecha; una columna en pantallas angostas. */
.mkt-broker-page .mkt-broker-resumen {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 32px;
}

@media (max-width: 900px) {
    .mkt-broker-page .mkt-broker-resumen {
        grid-template-columns: 1fr;
    }
}

.mkt-broker-page .mkt-broker-donut {
    position: relative;
    max-width: 320px;
    margin: 0 auto;
}

/* Porcentaje al centro de la dona (Telerik no dibuja texto en el hueco). */
.mkt-broker-page .mkt-broker-donut__center {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    font-weight: 800;
    color: #0b6e4f;
    pointer-events: none;
}

.mkt-broker-page .mkt-broker-donut-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 16px;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.85rem;
    color: #374151;
}

.mkt-broker-page .mkt-broker-donut-legend li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.mkt-broker-page .mkt-broker-donut-legend li.is-pendiente {
    color: #9ca3af;
}

.mkt-broker-page .mkt-broker-donut-legend__swatch {
    flex: none;
    width: 14px;
    height: 14px;
    border: 1px solid #1f2937;
}

.mkt-broker-page .mkt-broker-evidencia-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
}

.mkt-broker-page .mkt-broker-evidencia-item__label {
    font-size: 0.85rem;
    color: #374151;
}

.mkt-broker-page .mkt-broker-evidencia-item__box {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #c7d2fe;
    border-radius: 6px;
    background: #e8eefc;
    white-space: pre-wrap;
    word-break: break-word;
}

.mkt-broker-page .mkt-broker-header > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mkt-broker-page .mkt-broker-header__label {
    font-size: 0.8rem;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.mkt-broker-page .mkt-broker-header__value {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--soc-page-title-color);
}

.mkt-broker-page .mkt-broker-avance {
    margin: 0 0 1rem;
    color: #374151;
}

/* 3 columnas, o las que haya si son menos de 3 (--mkt-cols); una sola en pantallas angostas. */
.mkt-broker-page .mkt-broker-checks {
    display: grid;
    grid-template-columns: repeat(var(--mkt-cols, 3), minmax(0, 1fr));
    gap: 12px;
}

@media (max-width: 640px) {
    .mkt-broker-page .mkt-broker-checks {
        grid-template-columns: 1fr;
    }
}

.mkt-broker-page .mkt-broker-check {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.mkt-broker-page .mkt-broker-check.is-validado {
    border-color: #86efac;
    background: #f0fdf4;
}

.mkt-broker-page .mkt-broker-check label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    cursor: pointer;
    font-weight: 600;
}

.mkt-broker-page .mkt-broker-check .form-check-input {
    margin: 0;
    flex: none;
}

.mkt-broker-page .mkt-broker-check__pct {
    margin-left: auto;
    font-weight: 500;
    color: #6b7280;
}

.mkt-broker-page .mkt-broker-check__evidencia {
    align-self: flex-start;
    padding: 0;
    border: none;
    background: none;
    font-size: 0.85rem;
    color: var(--soc-page-title-color);
    text-decoration: underline;
    cursor: pointer;
}

.mkt-broker-evidencia-text {
    resize: vertical;
    min-height: 120px;
}

.mkt-broker-evidencia-view {
    white-space: pre-wrap;
    word-break: break-word;
}
