/* =========================================
   VEM Torneos Frontend Styles - Final v11.5
   ========================================= */

:root {
    /* Variables Globales VEM */
    --vem-primary: #0073aa;       /* WordPress Blue */
    --vem-primary-dark: #005177;
    --vem-bg-light: #f9f9f9;
    --vem-border: #dcdcde;
    --vem-text: #3c434a;
    --vem-text-muted: #646970;
    --vem-success: #00a32a;
    --vem-warning: #dba617;
    --vem-error-bg: #fcebeec0;
    --vem-error-text: #d63638;
}

/* =========================================
   1. UTILIDADES COMPARTIDAS (Globales)
   ========================================= */

/* Wrappers Principales */
.vem-torneos-frontend-wrapper,
.vem-team-observer-wrapper {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    color: var(--vem-text);
    font-size: 14px;
    line-height: 1.5;
}

/* Feedback: Loading */
.vem-loading-spinner, 
.vem-loading-small, 
.vem-loading-tiny {
    text-align: center;
    color: var(--vem-text-muted);
    padding: 20px;
    font-style: italic;
    background: rgba(255,255,255,0.5);
}
.vem-loading-tiny { padding: 10px; font-size: 0.9em; }

/* Feedback: Mensajes */
.vem-error-msg {
    color: var(--vem-error-text);
    background: var(--vem-error-bg);
    border-left: 4px solid var(--vem-error-text);
    padding: 10px 15px;
    margin: 10px 0;
}

.vem-alert-success {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    padding: 10px;
    margin-top: 5px;
    border-radius: 4px;
    font-size: 13px;
}

.vem-muted-msg {
    color: var(--vem-text-muted);
    font-style: italic;
    padding: 15px;
    text-align: center;
    background: #fff;
    border: 1px dashed var(--vem-border);
    margin: 5px 0;
}

/* Badges (Etiquetas) */
.vem-badge {
    background: #0073aa;
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.85em;
    white-space: nowrap;
    margin-right: 3px;
    display: inline-block;
}

/* =========================================
   2. GESTIÓN DE EQUIPOS Y TABLAS (Admin/User)
   ========================================= */

/* --- Tablas de Gestión --- */
.vem-torneos-frontend-wrapper .vem-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #dee2e6;
    border-radius: 4px;
}

.vem-torneos-frontend-wrapper #vem-participantes-table {
    width: 100%;
    border-collapse: collapse;
}

.vem-torneos-frontend-wrapper #vem-participantes-table thead th {
    background-color: #eaf4f7;
    color: #2c5d72;
    font-weight: 600;
    padding: 10px 8px;
    border-bottom: 2px solid #dee2e6;
    text-align: left;
    white-space: nowrap;
}

.vem-torneos-frontend-wrapper #vem-participantes-table tbody tr { background-color: #fff !important; }
.vem-torneos-frontend-wrapper #vem-participantes-table tbody tr:nth-child(even) { background-color: #f0f5f9 !important; }
.vem-torneos-frontend-wrapper #vem-participantes-table tbody tr:hover { background-color: #e9ecef !important; }

.vem-torneos-frontend-wrapper #vem-participantes-table tbody td {
    padding: 6px 6px;
    border-top: 1px solid #dee2e6;
    vertical-align: middle;
    font-size: 13px;
    color: #495057;
    background-color: transparent; 
}

/* Buscador DataTables */
.vem-torneos-frontend-wrapper div.dataTables_filter {
    text-align: right;
    margin-bottom: 15px;
    margin-right: 5px;
}

/* --- Modales --- */
.vem-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    display: flex; justify-content: center; align-items: center;
    z-index: 1000; overflow-y: auto; padding: 20px;
}

.vem-modal-content {
    background-color: #fff; padding: 20px 30px; border-radius: 5px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.5);
    width: 90%; max-width: 700px; position: relative;
}

.vem-modal-header {
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 20px;
}
.vem-modal-header h3 { margin: 0; font-size: 22px; }

.vem-modal-close-btn {
    border: none; background: transparent; font-size: 30px;
    font-weight: bold; line-height: 1; color: #000; opacity: 0.3; cursor: pointer;
}
.vem-modal-close-btn:hover { opacity: 1; }

.vem-modal-footer {
    border-top: 1px solid #eee; padding-top: 15px; margin-top: 25px; text-align: right;
}

/* Loading Overlay en Modal */
.vem-modal-content.is-loading { position: relative; opacity: 0.7; pointer-events: none; }
.vem-modal-content.is-loading::after {
    content: ''; position: absolute; top: 50%; left: 50%;
    width: 40px; height: 40px; margin-top: -20px; margin-left: -20px;
    border: 4px solid #f3f3f3; border-top: 4px solid #3498db;
    border-radius: 50%; animation: vem-spin 1s linear infinite; z-index: 1001;
}
@keyframes vem-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Formularios en Grid */
.vem-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px 20px; }
.vem-form-group { display: flex; flex-direction: column; gap: 8px; }
.vem-form-group label { font-weight: bold; margin-bottom: 0; font-size: 14px; }
.vem-form-group input, .vem-form-group select {
    padding: 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px;
}
.vem-form-group-full-width { grid-column: 1 / -1; }
.vem-form-group-full-width fieldset { border: 1px solid #e0e0e0; padding: 10px 15px; border-radius: 4px; }
.vem-form-group-full-width legend { font-weight: bold; font-size: 14px; padding: 0 5px; }

/* Selección de Disciplinas */
.vem-discipline-group-header {
    grid-column: 1 / -1; font-size: 16px; font-weight: 600; color: #2271b1;
    margin-top: 20px; margin-bottom: 5px; padding-bottom: 5px; border-bottom: 2px solid #f0f0f1;
}
.vem-discipline-group-header:first-of-type { margin-top: 5px; }
.vem-disciplines-container {
    grid-column: 1 / -1; border: 1px solid #e0e0e0; padding: 15px;
    border-radius: 4px; max-height: 250px; overflow-y: auto;
}
.vem-checkbox-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px; padding-top: 5px;
}
.vem-checkbox-item { display: flex; align-items: center; }
.vem-checkbox-item input[type="checkbox"] { margin-right: 8px; }
.vem-checkbox-item.vem-dimmed { opacity: 0.5; pointer-events: none; }
.vem-checkbox-item.vem-exception-highlight label { font-weight: bold; color: #d63638; }

/* Botones de Acción */
.vem-modal-footer .button, .vem-action-buttons .button {
    padding: 5px 12px; font-size: 13px; height: auto; line-height: 1.5;
    border-radius: 3px; cursor: pointer; transition: background-color 0.2s; margin-left: 8px;
}
.vem-action-buttons { display: flex; align-items: center; }
.vem-action-buttons .button { margin-left: 0; margin-right: 5px; }

.vem-btn-edit, .vem-btn-delete {
    display: inline-flex !important; align-items: center; justify-content: center;
    gap: 5px; padding: 5px 10px !important; font-size: 13px; border-radius: 3px;
    cursor: pointer; background: #fff; border: 1px solid #ccc; font-weight: 500;
}
.vem-btn-edit .dashicons, .vem-btn-delete .dashicons {
    font-family: "dashicons" !important; font-size: 18px !important;
    width: 18px; height: 18px; display: inline-block; line-height: 1;
}
.vem-btn-edit { color: #0073aa !important; border-color: #0073aa !important; }
.vem-btn-edit:hover { background-color: #f0f0f1 !important; }
.vem-btn-delete { color: #d63638 !important; border-color: #d63638 !important; }
.vem-btn-delete:hover { background-color: #fbeaea !important; }

#vem-modal-cancel { background-color: #f0f0f1; border-color: #dcdcde; color: #444; }
#vem-modal-cancel:hover { background-color: #e0e0e0; border-color: #c9c9c9; }

/* Filtros y Listado de Equipos (SCOPED para GESTIÓN) */
.vem-section-separator { margin: 40px 0; border: 0; border-top: 1px solid #ddd; }
.vem-filters-bar {
    display: flex; flex-wrap: wrap; gap: 20px; padding: 15px;
    background-color: #f8f9fa; border: 1px solid #e0e0e0; border-radius: 4px; margin-bottom: 25px;
}
.vem-filter-group { display: flex; flex-direction: column; gap: 5px; flex-grow: 1; min-width: 180px; }
.vem-filter-group label { font-size: 12px; font-weight: 600; color: #495057; }
.vem-filter-group select { padding: 6px; border-radius: 3px; border: 1px solid #ccc; }

#vem-teams-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); gap: 25px; }

.vem-discipline-block {
    background-color: #fff; border: 1px solid #e0e0e0; border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05); display: flex; flex-direction: column;
}
.vem-discipline-header { padding: 12px 15px; background-color: #f0f5f9; border-bottom: 1px solid #e0e0e0; }
.vem-discipline-header h3 { margin: 0; font-size: 18px; font-weight: 600; color: #2c5d72; }

.vem-city-sub-block { padding: 10px 15px; border-bottom: 1px solid #f0f0f0; }
.vem-discipline-block .vem-city-sub-block:last-child { border-bottom: none; }
.vem-city-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.vem-city-header h4 { margin: 0; font-size: 15px; font-weight: 600; color: #495057; }

.vem-team-counter {
    font-size: 14px; font-weight: 600; background-color: #e9ecef;
    padding: 4px 8px; border-radius: 4px; color: #495057;
}

.vem-teams-list { padding-left: 10px; }
.vem-no-teams-yet { color: #6c757d; font-style: italic; font-size: 14px; margin: 0 0 10px 0; }

.vem-team-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 0; border-bottom: 1px solid #f0f0f0;
}
.vem-team-item:last-child { border-bottom: none; padding-bottom: 0; }

.vem-team-info { display: flex; flex-direction: column; }

/* SCOPED: Estilos de nombres y botones de texto SOLO para gestión */
#vem-teams-container .vem-team-name { font-size: 14px; color: #212529; font-weight: 600; }
#vem-teams-container .vem-team-creator { font-size: 11px; font-style: italic; color: #6c757d; margin-top: 2px; }

#vem-teams-container .button-link {
    border: none; background: none; color: #d63638; cursor: pointer;
    font-size: 12px; padding: 0; text-decoration: underline;
}
#vem-teams-container .button-link:hover { color: #a00; }

/* Cabecera de Secciones */
.vem-section-header {
    display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px;
}
.vem-section-header h2 { margin: 0; }
.vem-section-actions .button {
    background-color: #2271b1; color: #ffffff; border: 1px solid #1a5a8e;
    padding: 8px 20px; font-size: 14px; font-weight: 600; border-radius: 5px;
    cursor: pointer; transition: all 0.2s ease-in-out; box-shadow: 0 2px 4px rgba(0,0,0,0.07);
}
.vem-section-actions .button:hover {
    background-color: #2c8ac8; border-color: #2071a1;
    box-shadow: 0 3px 6px rgba(0,0,0,0.1); transform: translateY(-2px);
}
.vem-section-actions .button:active {
    background-color: #1a5a8e; box-shadow: inset 0 2px 3px rgba(0,0,0,0.15); transform: translateY(0);
}


/* =========================================
   3. OBSERVADOR DE EQUIPOS (v11.2)
   ========================================= */

/* Headers Específicos */
.vem-observer-header h2 { font-size: 1.4em; margin: 0 0 5px 0; color: #1d2327; }
.vem-observer-header p { margin: 0; color: var(--vem-text-muted); }

/* --- Nivel 1: Ciudad --- */
.vem-observer-city-item {
    background: #fff; border: 1px solid var(--vem-border); border-radius: 4px;
    margin-bottom: 8px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,0.02);
}
.vem-observer-city-header {
    background-color: #f6f7f7; padding: 12px 15px; cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    transition: all 0.2s ease; border-bottom: 1px solid transparent;
}
.vem-observer-city-header:hover { background-color: #f0f0f1; color: var(--vem-primary); }
.vem-observer-city-header.active {
    background-color: #fff; border-bottom: 1px solid var(--vem-border); color: var(--vem-primary-dark);
}
.vem-observer-city-header h3 { margin: 0; font-size: 1.1em; font-weight: 600; }

.vem-observer-city-content { display: none; padding: 10px 0; background: #fff; }

/* --- Nivel 2: Disciplina --- */
.vem-observer-discipline-group { margin: 10px 0; padding-left: 15px; }
.vem-observer-discipline-title {
    color: var(--vem-primary); font-size: 0.85em; text-transform: uppercase;
    font-weight: 700; letter-spacing: 0.5px; margin: 0 0 8px 0;
    padding-left: 10px; border-left: 3px solid var(--vem-primary);
}

/* --- Nivel 3: Equipo --- */
.vem-observer-team-item { border-bottom: 1px solid #f0f0f1; }
.vem-observer-team-item:last-child { border-bottom: none; }

.vem-observer-team-header {
    padding: 10px 15px; cursor: pointer; display: flex;
    justify-content: space-between; align-items: center;
    transition: background 0.1s; margin-left: 10px; border-radius: 3px;
}
.vem-observer-team-header:hover { background-color: #f6f7f7; }

/* Selectores específicos para Observer JS */
.vem-observer-team-header .vem-team-name { color: #2c3338; font-weight: 600; }
.vem-observer-team-header .vem-team-count {
    color: var(--vem-text-muted); font-weight: normal; margin-left: 6px; font-size: 0.9em;
}

/* --- Nivel 4: Jugadores (Tabla Scoped) --- */
.vem-observer-players-container {
    background-color: #fafafa; padding: 15px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.03);
    border-top: 1px solid #f0f0f1; display: none;
}

/* SCOPED: Tabla de jugadores solo dentro del observador */
.vem-team-observer-wrapper .vem-players-table {
    width: 100%; border-collapse: collapse; font-size: 0.95em;
    background: #fff; border: 1px solid var(--vem-border);
}
.vem-team-observer-wrapper .vem-players-table th, 
.vem-team-observer-wrapper .vem-players-table td {
    padding: 8px 12px; text-align: left; border-bottom: 1px solid #f0f0f1;
}
.vem-team-observer-wrapper .vem-players-table th {
    background-color: #f6f7f7; font-weight: 600;
    color: var(--vem-text-muted); font-size: 0.85em; text-transform: uppercase;
}
.vem-team-observer-wrapper .vem-players-table tr:last-child td { border-bottom: none; }
.vem-team-observer-wrapper .vem-players-table tr:hover td { background-color: #fcfcfc; }

/* Estados */
.vem-status-ok { color: var(--vem-success); font-weight: bold; font-size: 1.1em; }
.vem-status-pending { color: var(--vem-warning); font-size: 1.1em; }

/* --- Utilidades Visuales Scoped (SOLO OBSERVER) --- */
.vem-team-observer-wrapper .dashicons {
    color: #a7aaad; transition: color 0.2s;
}
.vem-team-observer-wrapper .active .dashicons,
.vem-team-observer-wrapper .vem-observer-team-header:hover .dashicons {
    color: var(--vem-primary);
}

/* --- Responsive Básico --- */
@media (max-width: 600px) {
    .vem-observer-city-header,
    .vem-observer-team-header { padding: 10px; }
    .vem-team-observer-wrapper .vem-players-table th, 
    .vem-team-observer-wrapper .vem-players-table td { padding: 6px 8px; font-size: 0.9em; }
    .vem-observer-discipline-group { padding-left: 5px; }
    .vem-observer-team-header { margin-left: 5px; }
}

/* ===== Patch DataTable v9 cols (Equipos + Acciones) ===== */
#vem-participantes-table td:last-child,
#vem-participantes-table th:last-child {
  white-space: nowrap;
  width: 1%;
}

#vem-participantes-table .vem-badge {
  vertical-align: middle;
  margin-bottom: 2px;
}

#vem-participantes-table span[title] {
  cursor: help;
}

/* =====================================================
   FIX DEFINITIVO – Columna Acciones (DataTable)
   ===================================================== */

#vem-participantes-table td:last-child {
  white-space: nowrap;
  text-align: center;
}

/* Botones de acciones */
#vem-participantes-table td:last-child a,
#vem-participantes-table td:last-child button {
  padding: 6px 8px !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  line-height: 1 !important;
  border-radius: 6px;
}

/* Íconos (fontawesome / dashicons / svg) */
#vem-participantes-table td:last-child i,
#vem-participantes-table td:last-child .dashicons {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  line-height: 16px !important;
}

#vem-participantes-table td:last-child svg {
  width: 16px !important;
  height: 16px !important;
}

.vem-form-group {
    display: flex;
    gap: 12px;
}

.vem-form-group > div {
    flex: 1;
}

.vem-modal-content .vem-input-field {
    width: 100%;
}

@media (max-width: 768px) {
    .vem-form-group {
        flex-direction: column;
    }
}

/* =========================================
   FIX: Layout Modal Staff (Dos Columnas)
   ========================================= */
#vem-staff-form .vem-form-row {
    display: flex;
    gap: 15px;
    margin-bottom: 15px;
    align-items: flex-start;
}

#vem-staff-form .vem-form-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

#vem-staff-form label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
}

#vem-staff-form .vem-input-field {
    width: 100%;
    box-sizing: border-box;
}

#vem-staff-equipos-group,
#vem-staff-acompana-group {
    width: 100%;
    margin-bottom: 15px;
}

#vem-staff-form .vem-modal-actions {
    margin-top: 25px;
    padding-top: 15px;
    border-top: 1px solid #ddd;
    text-align: right;
}

@media (max-width: 768px) {
    #vem-staff-form .vem-form-row {
        flex-direction: column;
        gap: 15px;
    }
}
/* =========================================
   Staff Table - Botones de acciones
   ========================================= */
#vem-staff-table td:last-child {
    white-space: nowrap;
    text-align: center;
}

#vem-staff-table .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 30px;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: none;
    margin-right: 6px;
}

#vem-staff-table .vem-staff-edit {
    border: 1px solid #2271b1;
    color: #2271b1;
    background: #fff;
}

#vem-staff-table .vem-staff-edit:hover {
    background: #eef6fb;
    border-color: #135e96;
    color: #135e96;
}

#vem-staff-table .vem-staff-delete {
    border: 1px solid #d63638;
    color: #d63638 !important;
    background: #fff;
}

#vem-staff-table .vem-staff-delete:hover {
    background: #fdf0f0;
    border-color: #b32d2e;
    color: #b32d2e !important;
}

#vem-staff-table .button:last-child {
    margin-right: 0;
}

#vem-staff-table {
    width: 100%;
}

.vem-table-wrapper {
    max-width: 100%;
    overflow-x: auto;
}

/* =========================================
   Staff Table - Header + ancho + acciones
   ========================================= */

/* Wrapper específico staff */
.vem-torneos-frontend-wrapper #vem-staff-table {
    width: 100% !important;
    border-collapse: collapse;
}

/* Encabezados staff */
.vem-torneos-frontend-wrapper #vem-staff-table thead th {
    background-color: #e7f1f3 !important;   /* azul petróleo muy suave */
    color: #315c63 !important;
    font-weight: 600;
    padding: 10px 8px;
    border-bottom: 2px solid #d4e3e6 !important;
    text-align: left;
    white-space: nowrap;
}

/* Celdas staff */
.vem-torneos-frontend-wrapper #vem-staff-table tbody td {
    padding: 6px 6px;
    border-top: 1px solid #dee2e6;
    vertical-align: middle;
    font-size: 13px;
    color: #495057;
    background-color: transparent;
}

/* Filas staff */
.vem-torneos-frontend-wrapper #vem-staff-table tbody tr {
    background-color: #fff !important;
}

.vem-torneos-frontend-wrapper #vem-staff-table tbody tr:nth-child(even) {
    background-color: #f7fbfc !important;
}

.vem-torneos-frontend-wrapper #vem-staff-table tbody tr:hover {
    background-color: #edf4f6 !important;
}

/* Columna acciones */
.vem-torneos-frontend-wrapper #vem-staff-table td:last-child,
.vem-torneos-frontend-wrapper #vem-staff-table th:last-child {
    white-space: nowrap;
    width: 1%;
    text-align: center;
}

/* Botones staff */
.vem-torneos-frontend-wrapper #vem-staff-table .button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 30px;
    padding: 4px 10px !important;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: none;
    margin-right: 6px;
}

.vem-torneos-frontend-wrapper #vem-staff-table .vem-staff-edit {
    border: 1px solid #2271b1;
    color: #2271b1 !important;
    background: #fff;
}

.vem-torneos-frontend-wrapper #vem-staff-table .vem-staff-edit:hover {
    background: #eef6fb !important;
    border-color: #135e96 !important;
    color: #135e96 !important;
}

.vem-torneos-frontend-wrapper #vem-staff-table .vem-staff-delete {
    border: 1px solid #d63638;
    color: #d63638 !important;
    background: #fff;
}

.vem-torneos-frontend-wrapper #vem-staff-table .vem-staff-delete:hover {
    background: #fdf0f0 !important;
    border-color: #b32d2e !important;
    color: #b32d2e !important;
}

.vem-torneos-frontend-wrapper #vem-staff-table .button:last-child {
    margin-right: 0;
}

/* Asegurar scroll horizontal si hiciera falta */
.vem-torneos-frontend-wrapper .vem-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* =========================================
   Staff - Botón principal Añadir Staff
   ========================================= */
#vem-add-staff-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 40px;
    padding: 0 18px !important;

    background: linear-gradient(180deg, #2271b1 0%, #1b5f96 100%) !important;
    color: #ffffff !important;
    border: 1px solid #174e7b !important;
    border-radius: 8px !important;

    font-size: 14px;
    font-weight: 600;
    line-height: 1;

    box-shadow: 0 2px 8px rgba(34, 113, 177, 0.18);
    transition: all 0.18s ease;
}

#vem-add-staff-btn:hover {
    background: linear-gradient(180deg, #2a7fc3 0%, #1f6ba7 100%) !important;
    border-color: #15496f !important;
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(34, 113, 177, 0.22);
}

#vem-add-staff-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(34, 113, 177, 0.18);
}

#vem-add-staff-btn:focus {
    outline: none;
    box-shadow:
        0 0 0 2px rgba(255,255,255,0.9),
        0 0 0 4px rgba(34, 113, 177, 0.28);
}

/* =========================================
   Botones principales de gestión
   ========================================= */

/* Añadir Participante */
#vem-add-participant-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 40px;
    padding: 0 18px !important;

    background: linear-gradient(180deg,#ff8a3a,#f06b1a);
    color: #ffffff !important;

    border: 1px solid #d65a0d;
    border-radius: 8px;

    font-size: 14px;
    font-weight: 600;

    box-shadow: 0 2px 8px rgba(240,107,26,0.25);
    transition: all 0.18s ease;
}

#vem-add-participant-btn:hover{
    background: linear-gradient(180deg,#ff9a52,#f07a2a);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(240,107,26,0.35);
}

/* Añadir Refuerzo */
#vem-add-refuerzo-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    min-height:40px;
    padding:0 18px !important;

    background: linear-gradient(180deg,#2f8f9b,#247680);
    color:#ffffff !important;

    border:1px solid #1c5f66;
    border-radius:8px;

    font-size:14px;
    font-weight:600;

    box-shadow:0 2px 8px rgba(36,118,128,0.25);
    transition:all .18s ease;
}

#vem-add-refuerzo-btn:hover{
    background: linear-gradient(180deg,#3fa1ad,#2a8792);
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(36,118,128,0.35);
}

/* =========================================
   Botón Añadir Refuerzo
   ========================================= */

#vem-add-reinforcement-btn {

    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 40px;
    padding: 0 18px !important;

    background: linear-gradient(180deg,#2f8f9b,#247680) !important;
    color: #ffffff !important;

    border: 1px solid #1c5f66 !important;
    border-radius: 8px !important;

    font-size: 14px;
    font-weight: 600;

    box-shadow: 0 2px 8px rgba(36,118,128,0.25);
    transition: all .18s ease;
}

#vem-add-reinforcement-btn:hover {

    background: linear-gradient(180deg,#3fa1ad,#2a8792) !important;
    transform: translateY(-1px);

    box-shadow: 0 4px 12px rgba(36,118,128,0.35);
}

#vem-add-reinforcement-btn .dashicons {
    font-size: 18px;
}

#vem-participantes-table tbody td.vem-col-owner {
    font-size: 11px;
    line-height: 1.2;
    color: #555;
    white-space: normal;
}

/* ======================================================
   ALERTAS VISUALES VEM
====================================================== */

.vem-alert-error {
    background: rgba(220, 53, 69, 0.08);
    border-left: 4px solid #dc3545;
    border-radius: 4px;
    padding: 12px 14px;
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.45;
    color: #842029;
    display: flex;
    align-items: flex-start;
    gap: 8px;
}