/* Diseño común del módulo de Ventas: barra roja + contenido sobre fondo gris claro.
   Las páginas conservan sus estilos propios; aquí solo se unifica el marco (se carga al final del <head>). */
:root { --vs-red:#a30000; --vs-red-dark:#800000; --vs-tint:#fbeaea; --vs-ink:#1f1f1f; --vs-ink2:#4a4a4a; --vs-ink3:#6b6b6b; --vs-line:#e3e5e8; --vs-bg:#f4f5f7; }

/* ---- Barra superior ---- */
.vs-appbar { background:var(--vs-red); position:relative; z-index:50; }
.vs-appbar-in { max-width:1080px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.vs-brand { display:inline-flex; align-items:center; gap:14px; text-decoration:none; min-width:0; }
.vs-brand img { height:40px; width:auto; display:block; filter:brightness(0) invert(1); flex:0 0 auto; }
.vs-brand-sep { width:1px; height:26px; background:rgba(255,255,255,.35); flex:0 0 auto; }
.vs-brand-name { font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:14px; color:#fff; line-height:1.3; max-width:340px; }
.vs-userbox { display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.vs-user { display:flex; align-items:center; gap:10px; }
.vs-avatar { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.18); color:#fff; border:1px solid rgba(255,255,255,.35); display:grid; place-items:center; font-weight:700; font-size:13px; font-family:'Plus Jakarta Sans',sans-serif; }
.vs-user-txt { line-height:1.25; }
.vs-user-txt b { display:block; font-size:13.5px; font-weight:600; color:#fff; }
.vs-user-txt span { font-size:12px; color:rgba(255,255,255,.75); }
.vs-logout { display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 16px; border:1px solid rgba(255,255,255,.55); border-radius:8px; background:transparent; color:#fff; font-size:13px; font-weight:600; text-decoration:none; transition:background .15s; }
.vs-logout:hover { background:rgba(255,255,255,.14); }

/* ---- Marco de la página ---- */
body.vs { margin:0; background:var(--vs-bg) !important; padding:0 !important; display:block !important; min-height:100vh; font-family:'DM Sans',sans-serif; }
.vs .wrap, .vs .container, .vs .edit-container, .vs .register-container, .vs .login-container, .vs .main-wrap { width:100%; max-width:1080px !important; margin:0 auto !important; padding:28px 24px 40px !important; }
.vs .card, .vs .edit-card, .vs .register-card, .vs .login-card { box-shadow:none !important; border:1px solid var(--vs-line); border-radius:12px !important; background:#fff; overflow:hidden; max-width:none !important; width:100% !important; margin:0 !important; animation:none !important; }

/* Encabezado de cada página: claro, alineado a la izquierda (el logo ya está en la barra) */
.vs .card-header { background:#fff !important; text-align:left !important; padding:24px 28px 20px !important; border-bottom:1px solid var(--vs-line); }
.vs .card-header > a { display:none !important; }
.vs .card-header-title { display:flex !important; align-items:center; gap:14px; color:var(--vs-ink) !important; font-family:'Plus Jakarta Sans',sans-serif !important; font-size:22px !important; font-weight:700 !important; margin:0 !important; letter-spacing:-.01em; }
.vs .card-header-title > i { flex:0 0 auto; width:42px; height:42px; border-radius:10px; background:var(--vs-tint); color:var(--vs-red) !important; display:grid; place-items:center; font-size:18px; }
.vs .card-header-subtitle { color:var(--vs-ink3) !important; font-size:14px !important; margin-top:8px !important; display:block !important; text-align:left !important; }
.vs .card-header-subtitle i { display:none; }
.vs .card-body { padding:24px 28px 32px !important; }

/* Usuario ya se muestra en la barra; el botón de regreso queda como acción secundaria */
.vs .user-badge { display:none !important; }
.vs .top-bar { justify-content:flex-start !important; margin-bottom:20px !important; }
.vs .btn-back, .vs .btn-volver-dash { background:#fff !important; color:var(--vs-ink2) !important; border:1px solid #c9cdd3 !important; border-radius:8px !important; height:38px; padding:0 16px !important; display:inline-flex !important; align-items:center; gap:8px; font-size:13px !important; font-weight:600 !important; text-decoration:none; }
.vs .btn-back i, .vs .btn-volver-dash i { color:var(--vs-ink2) !important; }
.vs .btn-back:hover, .vs .btn-volver-dash:hover { background:#f1f2f4 !important; border-color:#9aa0a8 !important; }

/* Título de página en Mis Invitados: mismo ícono claro que las demás páginas */
.vs .page-title-icon { background:var(--vs-tint) !important; color:var(--vs-red) !important; }
.vs .page-title-icon i { color:var(--vs-red) !important; }
.vs .page-title { color:var(--vs-ink) !important; }

/* "Volver": dentro del encabezado de la tarjeta, a la derecha (en pantallas anchas) */
@media (min-width:761px) {
    .vs .card, .vs .register-card, .vs .edit-card { position:relative; }
    .vs .card > .card-body > .top-bar:first-child, .vs .register-card .top-bar, .vs .edit-card .top-bar, .vs .card .top-bar { position:absolute; top:26px; right:28px; margin:0 !important; z-index:2; }
    .vs .card:has(.top-bar) .card-header, .vs .register-card:has(.top-bar) .card-header { padding-right:220px !important; min-height:104px; }
}

/* Mis Invitados: el encabezado de la página usa el mismo bloque blanco que las demás */
.vs-page-sub { color:var(--vs-ink3); font-size:14px; margin-top:8px; }
.vs .page-header { align-items:flex-start !important; background:#fff; border:1px solid var(--vs-line); border-radius:12px; padding:24px 28px !important; margin-bottom:18px !important; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.vs .page-title { display:flex; align-items:center; gap:14px; font-family:'Plus Jakarta Sans',sans-serif; font-size:22px !important; font-weight:700 !important; letter-spacing:-.01em; }
.vs .page-title-icon { width:42px !important; height:42px !important; border-radius:10px !important; display:grid !important; place-items:center; font-size:18px !important; }

/* Pie de página */
.vs-footer { max-width:1080px; margin:0 auto; padding:18px 24px 34px; text-align:center; font-size:12px; color:var(--vs-ink3); }

/* ---- Flujo público (capacitados: PIN, registro, examen y encuesta) ---- */
.vs-pub .register-container, .vs-pub .container, .vs-pub .login-container, .vs-pub .wrap { max-width:760px !important; }
.vs .card-header > img, .vs .card-header .card-header-logo, .vs .card-header .logo-wrap { display:none !important; }
.vs-pub .vs-appbar-in { max-width:760px; }
/* Páginas sueltas (aviso próximamente, aceptar privacidad): la tarjeta va centrada bajo la barra */
.vs-pub > .card { max-width:560px !important; margin:36px auto !important; width:calc(100% - 24px) !important; }

/* ---- Paneles de administración: su barra superior toma el mismo aspecto ---- */
.vs-admin .topbar { background:var(--vs-red) !important; box-shadow:none !important; }
.vs-admin .user-chip { background:transparent !important; border:none !important; padding:0 !important; }
.vs-admin .user-avatar { border-radius:50% !important; background:rgba(255,255,255,.18) !important; border:1px solid rgba(255,255,255,.35) !important; color:#fff !important; }
.vs-admin .btn-logout { background:transparent !important; border:1px solid rgba(255,255,255,.55) !important; color:#fff !important; border-radius:8px !important; height:38px; display:inline-flex; align-items:center; gap:8px; padding:0 16px; }
.vs-admin .btn-logout:hover { background:rgba(255,255,255,.14) !important; }
.vs-admin .topbar-subtitle { text-transform:none !important; letter-spacing:0 !important; color:rgba(255,255,255,.8) !important; }
.vs-admin .vs-footer { max-width:none; }
.vs-admin .btn-logout { white-space:nowrap; }
.vs-admin .stat-nav-label { display:block !important; white-space:normal !important; }
@media (max-width:768px) {
    .vs-admin .tabs-wrap { overflow-x:auto; flex-wrap:nowrap !important; -webkit-overflow-scrolling:touch; }
    .vs-admin .tab { white-space:nowrap; flex:0 0 auto; }
    .vs-admin .tab span { display:inline !important; }
}
@media (max-width:460px) {
    .vs-admin .btn-logout span { display:none; }
    .vs-admin .btn-logout { padding:0 12px; }
    .vs-admin .user-info, .vs-admin .user-chip > div:last-child { max-width:150px; }
}

/* Revisar cuentas: su encabezado usa el bloque blanco común */
.vs .top-header { background:#fff !important; color:var(--vs-ink) !important; border:1px solid var(--vs-line); border-radius:12px !important; padding:22px 28px !important; }
.vs .top-header h1 { color:var(--vs-ink) !important; font-size:22px !important; }
.vs .top-header p { color:var(--vs-ink3) !important; }
.vs .top-header h1 i { color:var(--vs-red); }

/* ---- Responsive ---- */
@media (max-width:760px) {
    .vs-appbar-in { padding:12px 16px; flex-wrap:nowrap; gap:12px; }
    .vs-brand { flex:1 1 auto; gap:10px; }
    .vs-brand img { height:34px; }
    .vs-brand-sep { display:none; }
    .vs-brand-name { font-size:11.5px; max-width:none; }
    .vs-user-txt span { display:none; }
    .vs .wrap, .vs .container, .vs .edit-container, .vs .register-container, .vs .login-container, .vs .main-wrap { padding:16px 12px 28px !important; }
    .vs .card-header { padding:18px 16px 16px !important; }
    .vs .card-header-title { font-size:18px !important; gap:12px; }
    .vs .card-header-title > i { width:36px; height:36px; font-size:16px; }
    .vs .card-body { padding:18px 16px 24px !important; }
}
@media (max-width:460px) {
    .vs-user-txt { display:none; }
    .vs-logout span { display:none; }
    .vs-logout { padding:0 12px; }
}

@media (max-width:768px) { .vs-admin .topbar-right { margin-left:auto; } }

/* ---- Pantallas de entrada: login y PIN de capacitados ---- */
body.vs-entry { background:var(--vs-bg) !important; }
.entry { min-height:100vh; display:grid; grid-template-columns:1fr minmax(380px,45%); }
.entry-brand { order:2; background:var(--vs-red); color:#fff; display:flex; align-items:center; padding:56px 56px; position:relative; overflow:hidden; }
.entry-brand-in { max-width:460px; position:relative; z-index:1; }
.entry-logo { display:inline-block; line-height:0; margin-bottom:34px; }
.entry-logo img { height:72px; width:auto; filter:brightness(0) invert(1); display:block; }
.entry-brand h1 { font-family:'Plus Jakarta Sans',sans-serif; font-size:32px; line-height:1.2; font-weight:700; letter-spacing:-.015em; margin-bottom:14px; }
.entry-brand p { font-size:16px; line-height:1.6; color:rgba(255,255,255,.85); margin-bottom:30px; }
.entry-brand ul { list-style:none; display:grid; gap:14px; }
.entry-brand li { display:flex; align-items:center; gap:14px; font-size:14.5px; color:rgba(255,255,255,.92); }
.entry-brand li i { flex:0 0 auto; width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.14); display:grid; place-items:center; font-size:14px; }
.entry-main { display:flex; flex-direction:column; align-items:center; padding:40px 32px 0; background:var(--vs-bg); }
.entry-main > .login-container, .entry-main > .register-container { margin:auto !important; }
.entry-main .vs-footer { margin-top:auto; padding:26px 0 26px; }
.entry-main .login-container, .entry-main .register-container { width:100%; max-width:520px !important; padding:0 !important; }
.entry-main .card, .entry-main .login-card, .entry-main .register-card { border:1px solid var(--vs-line); box-shadow:0 12px 40px rgba(0,0,0,.08) !important; }
.entry-main .card-header { padding:34px 40px 22px !important; }
.entry-main .card-header-title { font-size:24px !important; }
.entry-main .card-header-subtitle { font-size:14.5px !important; }
.entry-main .card-body { padding:32px 40px 40px !important; }
.entry-main .btn-microsoft, .entry-main .btn-primary { height:52px !important; font-size:15px !important; }
.entry-main .form-group input { height:48px !important; font-size:15px !important; }
.entry-main .pin-input { font-size:44px !important; letter-spacing:16px !important; padding:22px 16px !important; }
@media (max-width:600px) { .entry-main .card-header, .entry-main .card-body { padding-left:24px !important; padding-right:24px !important; } .entry-main .pin-input { font-size:30px !important; letter-spacing:10px !important; padding:16px 12px !important; } }
@media (max-width:1000px) {
    .entry { grid-template-columns:1fr; min-height:0; }
    .entry-brand { order:0; padding:30px 24px 28px; }
    .entry-logo { margin-bottom:16px; }
    .entry-logo img { height:48px; }
    .entry-brand h1 { font-size:22px; margin-bottom:8px; }
    .entry-brand p { font-size:14px; margin-bottom:0; }
    .entry-brand ul { display:none; }
    .entry-main { padding:24px 16px 0; }
    .entry-main > .login-container, .entry-main > .register-container { margin:0 auto !important; }
    }

/* ---- Resumen de la capacitación (registro de capacitados) ---- */
.vs .cap-info { background:#fdf4f4; border:1px solid #efc9c9; border-top:4px solid var(--vs-red); border-radius:10px; padding:18px 22px 6px; margin-bottom:26px; }
.vs .cap-info-top { padding-bottom:14px; }
.vs .cap-info-kicker { display:flex; align-items:center; gap:8px; font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--vs-red); margin-bottom:8px; }
.vs .cap-info-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:21px; line-height:1.28; font-weight:700; color:var(--vs-ink); margin:0 0 10px; letter-spacing:-.01em; }
.vs .cap-info-chips { display:flex; gap:8px; flex-wrap:wrap; }
.vs .cap-info-chips:empty { display:none; }
.vs .cap-info-chip { display:inline-block; background:#fff; color:var(--vs-red); border:1px solid #efc9c9; font-size:12px; font-weight:600; padding:3px 11px; border-radius:20px; }
.vs .cap-info-desc { margin:12px 0 0; font-size:14px; line-height:1.55; color:var(--vs-ink2); }
.vs .cap-info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 22px; margin:0; border-top:1px solid #efc9c9; }
.vs .cap-info-grid > div { padding:13px 0; }
.vs .cap-info-grid dt { font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vs-ink3); margin-bottom:3px; }
.vs .cap-info-grid dd { margin:0; font-size:14.5px; line-height:1.45; font-weight:500; color:var(--vs-ink); overflow-wrap:anywhere; }
@media (max-width:640px) {
    .vs .cap-info { padding:16px 16px 2px; }
    .vs .cap-info-title { font-size:19px; }
    .vs .cap-info-grid { grid-template-columns:1fr 1fr; gap:0 14px; }
}
@media (max-width:400px) { .vs .cap-info-grid { grid-template-columns:1fr; } }

/* ---- Encuesta: calificación con estrellas ---- */
.vs .rating-stars { display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:6px !important; }
.vs .rating-stars input { position:absolute; opacity:0; pointer-events:none; width:0; height:0; }
.vs .rating-stars label { margin:0 !important; font-size:0 !important; cursor:pointer; line-height:1; color:#cfd3da; padding:4px; transition:color .12s; }
.vs .rating-stars label::before { content:"\f005"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:34px; }
.vs .rating-stars label:hover, .vs .rating-stars label:hover ~ label, .vs .rating-stars input:checked ~ label { color:#e6a100 !important; }
.vs .rating-stars input:focus-visible + label { outline:2px solid rgba(163,0,0,.5); border-radius:6px; }
@media (max-width:560px) { .vs .rating-stars label::before { font-size:30px; } }

/* Examen / encuesta / resultado: acentos en rojo institucional */
.vs .subtema-badge { background:var(--vs-tint) !important; color:var(--vs-red) !important; border:1px solid #efc9c9; border-radius:20px !important; padding:5px 14px !important; }
.vs .ponente-bloque { background:#fff !important; border:1px solid var(--vs-line) !important; border-radius:12px !important; }
.vs .ponente-bloque-titulo { color:var(--vs-ink) !important; }
.vs .ponente-bloque-titulo i { color:var(--vs-red) !important; }

/* Al imprimir / guardar PDF no se muestran la barra ni el pie */
@media print { .vs-appbar, .vs-footer { display:none !important; } body.vs { background:#fff !important; } .vs .card { border:none !important; } }

/* Selección de tema (examen) */
.vs .tema-option { border:1.5px solid var(--vs-line) !important; border-radius:12px !important; background:#fff; margin-bottom:12px !important; padding:16px 18px !important; }
.vs .tema-option:hover { border-color:#c9a3a3 !important; background:#fff !important; }
.vs .tema-option:has(input:checked) { border-color:var(--vs-red) !important; background:#fdf4f4 !important; box-shadow:0 0 0 3px rgba(163,0,0,.08); }
.vs .tema-option input { accent-color:var(--vs-red); flex:0 0 auto; }
.vs .tema-option .icon { flex:0 0 auto; width:46px; height:46px; border-radius:12px; background:var(--vs-tint); color:var(--vs-red); display:grid; place-items:center; font-size:20px !important; }
.vs .tema-option .icon i { color:var(--vs-red) !important; }
.vs .tema-option h3 { color:var(--vs-ink) !important; font-size:15.5px !important; margin-bottom:3px !important; }
.vs .tema-option p { color:var(--vs-ink3) !important; font-size:13px !important; }
.vs-pub .btn { font-family:'DM Sans',sans-serif; }

/* ---- Logística y Permisos de congresos: encabezado y bloques con el diseño común ---- */
.vs-admin .page-header { background:#fff !important; border:1px solid var(--vs-line); border-radius:12px; padding:20px 24px !important; margin-bottom:18px !important; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.vs-admin .page-title { display:flex; align-items:center; gap:14px; color:var(--vs-ink) !important; font-family:'Plus Jakarta Sans',sans-serif; font-size:22px !important; font-weight:700 !important; letter-spacing:-.01em; }
.vs-admin .page-title-icon { width:42px !important; height:42px !important; border-radius:10px !important; background:var(--vs-tint) !important; color:var(--vs-red) !important; display:grid !important; place-items:center; font-size:18px !important; flex:0 0 auto; }
.vs-admin .page-title-icon i { color:var(--vs-red) !important; }
.vs-admin .btn-volver-dash { background:#fff !important; color:var(--vs-ink2) !important; border:1px solid #c9cdd3 !important; border-radius:8px !important; height:38px; display:inline-flex !important; align-items:center; gap:8px; padding:0 16px !important; font-size:13px !important; font-weight:600 !important; }
.vs-admin .btn-volver-dash:hover { background:#f1f2f4 !important; }
.vs-logistica .congreso-banner { border-radius:12px !important; }

/* Logística: celdas de reservas sin cortes raros */
.vs-logistica .reserva-cell .check-row, .vs-logistica .check-label { white-space:nowrap; }
.vs-logistica tbody td .btn, .vs-logistica tbody td button { white-space:nowrap; }
.vs-logistica tbody td { overflow-wrap:break-word !important; word-break:normal !important; }
.vs-logistica thead th { white-space:nowrap; }

/* Permisos: cada vendedor es una fila ordenada en columnas */
.vs-permisos .vendedor-check { display:grid !important; grid-template-columns:24px minmax(220px,340px) minmax(0,1fr) auto; grid-template-areas:"chk nombre . estado" ". cupo desayuno desayuno"; gap:12px 16px !important; align-items:center; padding:14px 18px !important; border:1px solid var(--vs-line) !important; border-radius:12px !important; margin-bottom:12px !important; background:#fff; }
.vs-permisos .vendedor-check:hover { background:#fff !important; border-color:#cfd3da !important; }
.vs-permisos .vendedor-check > input[type="checkbox"] { grid-area:chk; accent-color:var(--vs-red) !important; }
.vs-permisos .vendedor-check > label { grid-area:nombre; font-weight:600 !important; color:var(--vs-ink); }
.vs-permisos .vendedor-check > label i { color:var(--vs-red) !important; margin-right:6px; }
.vs-permisos .vendedor-check > .badge-permitido, .vs-permisos .vendedor-check > .badge-no-permitido { grid-area:estado; justify-self:end; }
.vs-permisos .vendedor-check > .cupo-box { grid-area:cupo; align-self:start; }
.vs-permisos .vendedor-check > .desayuno-box { grid-area:desayuno; align-self:start; }
.vs-permisos .cupo-box, .vs-permisos .desayuno-box { background:#f7f8fa !important; border:1px solid var(--vs-line) !important; border-radius:10px !important; padding:12px 14px !important; margin:0 !important; width:auto !important; }
.vs-permisos .cupo-box { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.vs-permisos .cupo-label, .vs-permisos .desayuno-label { color:var(--vs-ink) !important; font-size:12px !important; letter-spacing:.03em; }
.vs-permisos .cupo-label i, .vs-permisos .desayuno-label i { color:var(--vs-red) !important; }
.vs-permisos .cupo-input, .vs-permisos .desayuno-cantidad, .vs-permisos .desayuno-fecha { border:1px solid #c9cdd3 !important; border-radius:8px !important; height:34px; background:#fff !important; }
.vs-permisos .cupo-input:focus, .vs-permisos .desayuno-cantidad:focus, .vs-permisos .desayuno-fecha:focus { border-color:var(--vs-red) !important; box-shadow:0 0 0 3px rgba(163,0,0,.12); }
.vs-permisos .desayuno-estado-row, .vs-permisos .desayuno-archivo-row { border-top:1px solid var(--vs-line) !important; }
.vs-permisos .btn-desayuno { height:34px; border-radius:8px !important; font-weight:600; }
.vs-permisos .btn-cupo-guardar, .vs-permisos .btn-desayuno-guardar { background:#15803d !important; color:#fff !important; border:1px solid #15803d !important; }
.vs-permisos .btn-cupo-guardar:hover, .vs-permisos .btn-desayuno-guardar:hover { background:#166534 !important; }
.vs-permisos .btn-desayuno-quitar, .vs-permisos .btn-desayuno-adjuntar { background:#fff !important; color:var(--vs-ink2) !important; border:1px solid #c9cdd3 !important; }
.vs-permisos .desayuno-ver-archivo { color:var(--vs-red) !important; }
@media (max-width:1000px) {
    .vs-permisos .vendedor-check { grid-template-columns:24px minmax(0,1fr) auto; grid-template-areas:"chk nombre estado" "cupo cupo cupo" "desayuno desayuno desayuno"; }
}
.vs-admin .btn-volver-dash i { color:var(--vs-ink2) !important; }
.vs-permisos .cupo-input { width:110px !important; }

.vs-logistica .congreso-banner { background:#fff !important; color:var(--vs-ink) !important; border:1px solid var(--vs-line); border-left:4px solid var(--vs-red); box-shadow:none !important; }
.vs-logistica .congreso-banner h2 { color:var(--vs-ink) !important; font-size:20px !important; }
.vs-logistica .congreso-banner p { color:var(--vs-ink3) !important; }

/* Logística en celular: cada persona es una tarjeta con sus datos etiquetados (sin scroll horizontal) */
@media (max-width:900px) {
    .vs-logistica .table-wrap { overflow-x:visible !important; }
    .vs-logistica table { min-width:0 !important; display:block; width:100%; }
    .vs-logistica table thead { display:none; }
    .vs-logistica table tbody { display:block; }
    .vs-logistica table tbody tr { display:block; padding:12px 14px; border-bottom:1px solid var(--vs-line); }
    .vs-logistica table tbody td { display:block !important; padding:7px 0 !important; border:none !important; background:transparent !important; text-align:left; white-space:normal !important; }
    .vs-logistica table tbody td::before { content:attr(data-label); display:block; margin-bottom:3px; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#6b6b6b; }
    .vs-logistica table tbody td:first-child::before { content:none; }
    .vs-logistica table tbody td[data-label="Desayuno"]:empty { display:none !important; }
}
@media (max-width:900px) {
    .vs-logistica table tbody tr.row-verde { background:#f0fdf4; } .vs-logistica table tbody tr.row-naranja { background:#fffbeb; }
    .vs-logistica table tbody tr.row-rojo { background:#fff5f5; } .vs-logistica table tbody tr.row-amarillo { background:#fefce8; }
    .vs-logistica table tbody tr.row-azul { background:#eff6ff; }
}
.vs-permisos .vendedor-check > .cupo-box, .vs-permisos .vendedor-check > .desayuno-box { min-width:0; max-width:100%; box-sizing:border-box; }
.vs-permisos .desayuno-fecha { min-width:0; flex:1 1 170px; }

/* ---- KPI (Ventas y SC): botones y acentos con la paleta común ---- */
.vs-admin .btn-blue, .vs-admin .btn-purple { background:#15803d !important; color:#fff !important; border:1px solid #15803d !important; box-shadow:none !important; }
.vs-admin .btn-blue:hover, .vs-admin .btn-purple:hover { background:#166534 !important; }
.vs-admin .btn-secondary { background:#fff !important; color:var(--vs-ink2) !important; border:1px solid #c9cdd3 !important; }
.vs-admin .btn-secondary i { color:var(--vs-ink2) !important; }
.vs-admin .btn-secondary:hover { background:#f1f2f4 !important; }
.vs-admin .stat-card[style*="--blue"]::before { background:#a30000 !important; }
.vs-admin .filter-bar select:focus { border-color:var(--vs-red) !important; }
/* Ponencias: el botón vacío no debe llevar un ícono gigante */
.vs-admin .empty-state .btn i, .vs-admin .empty-state a i { font-size:14px !important; }

/* Tarjeta del invitado (editar invitación): claro, con acento rojo */
.vs .invitado-card, .vs .persona-card { background:#fdf4f4 !important; color:var(--vs-ink) !important; border:1px solid #efc9c9; border-top:4px solid var(--vs-red); border-radius:10px !important; }
.vs .invitado-card i, .vs .persona-card i { color:var(--vs-red); }
.vs .invitado-card-title, .vs .persona-card-title { color:var(--vs-red) !important; opacity:1 !important; }

/* Ponencia (pública): datos del congreso en un bloque claro */
.vs .congreso-banner { background:#fdf4f4 !important; border-bottom:1px solid #efc9c9; border-left:4px solid var(--vs-red); text-align:left !important; padding:14px 24px !important; }
.vs .congreso-banner h2 { color:var(--vs-ink) !important; font-size:16px !important; }
.vs .congreso-banner p { color:var(--vs-ink3) !important; }

/* ---- Ajustes móviles generales de los paneles ---- */
@media (max-width:768px) {
    .vs-admin .topbar { flex-wrap:wrap !important; height:auto !important; padding:10px 16px !important; gap:10px; }
    .vs-admin .topbar-right { margin-left:auto; max-width:100%; gap:10px; }
    .vs-admin .user-name { max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .vs-admin .filter-bar form > div[style*="nowrap"], .vs-admin .filter-bar > div[style*="nowrap"] { flex-wrap:wrap !important; }
    .vs-admin .filter-bar .filter-group, .vs-admin .filter-group { min-width:0 !important; flex:1 1 100% !important; max-width:none !important; }
    .vs-admin .filter-bar select, .vs-admin .filter-bar input[type=text] { min-width:0 !important; max-width:100% !important; width:100%; }
}
@media (max-width:480px) {
    .vs-admin select, .vs-admin input[type=text], .vs-admin input[type=date], .vs-admin input[type=number] { max-width:100%; }
    .vs-admin .topbar-left { min-width:0; flex:1 1 auto; gap:10px !important; }
    .vs-admin .topbar-title { font-size:11.5px !important; }
    .vs-admin .topbar-logo { height:32px !important; }
    .vs-admin .topbar-divider { display:none; }
    .vs-admin .topbar-right { flex:0 0 auto; }
    .vs-admin .btn-logout { padding:0 12px !important; }
    .vs-admin .btn-logout span { display:none !important; }
    .vs-admin form { max-width:100%; }
    .vs-admin label { max-width:100%; }
}
@media (max-width:480px) { .vs-admin .selector-card select, .vs-admin .selector-card { min-width:0 !important; max-width:100% !important; width:100%; box-sizing:border-box; } }
@media (max-width:480px) { .vs-admin .selector-card > div[style*="min-width"] { min-width:0 !important; flex:1 1 100% !important; } }

/* ---- Tablas en celular: cada fila se vuelve una tarjeta con sus datos etiquetados (body.vs-cards) ---- */
@media (max-width:768px) {
    .vs-cards .table-wrap { overflow-x:visible !important; }
    .vs-cards .table-wrap table { min-width:0 !important; display:block; width:100%; }
    .vs-cards .table-wrap thead { display:none; }
    .vs-cards .table-wrap tbody { display:block; }
    .vs-cards .table-wrap tbody tr { display:block; padding:12px 14px; border-bottom:1px solid var(--vs-line); background:#fff; }
    .vs-cards .table-wrap tbody td { display:block !important; padding:6px 0 !important; border:none !important; text-align:left; white-space:normal !important; overflow-wrap:break-word !important; word-break:normal !important; }
    .vs-cards .table-wrap tbody td[hidden], .vs-cards .table-wrap tbody td:empty { display:none !important; }
    .vs-cards .table-wrap tbody td[data-label]::before { content:attr(data-label); display:block; margin-bottom:2px; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#6b6b6b; }
    .vs-cards .table-wrap tbody td:first-child::before { content:none !important; }
    .vs-cards .table-wrap tbody td:first-child { padding-top:0 !important; font-size:14.5px; }
    .vs-cards .table-wrap tbody td.acciones, .vs-cards .table-wrap tbody td:last-child { padding-top:10px !important; }
    .vs-cards .table-wrap tbody td[colspan] { text-align:center; }
}

/* Celular: campos de 16 px para que el navegador no haga zoom al enfocarlos; objetivos táctiles cómodos */
@media (max-width:760px) {
    .vs input:not([type=checkbox]):not([type=radio]):not([type=file]), .vs select, .vs textarea,
    .vs-admin input:not([type=checkbox]):not([type=radio]):not([type=file]), .vs-admin select, .vs-admin textarea { font-size:16px !important; }
    .vs .btn, .vs-admin .btn { min-height:40px; }
}
