/*
 * Bolsa de Seguridad — CSS público del flujo de vacantes.
 * DUEÑO: paquete «sitio». Movil primero: letra grande, botones de 48 px,
 * sueldo y turno destacados. Sin fuentes externas ni dependencias.
 * Encabezado, pie y bloques de portada viven en
 * modules/smart_pos/assets/store/css/vs-sitio.css (tema del sitio).
 * Todas las clases llevan prefijo vs-. Paleta en variables --vs-*.
 */
.vs-public, .vs-sitio {
  --vs-marino: #0B2545;
  --vs-acero: #13315C;
  --vs-verde: #16A34A;
  --vs-verde-osc: #15803D;
  --vs-verde-claro: #DCFCE7;
  --vs-ambar: #F59E0B;
  --vs-tinta: #0F172A;
  --vs-gris: #64748B;
  --vs-gris-osc: #475569;
  --vs-borde: #E2E8F0;
  --vs-fondo: #F8FAFC;
  --vs-radio: 16px;
}
.vs-public { background: var(--vs-fondo); color: var(--vs-tinta); }
.vs-main { display: block; padding-bottom: 56px; overflow-x: hidden; }
.vs-main *, .vs-main *::before, .vs-main *::after { box-sizing: border-box; }
.vs-main [id] { scroll-margin-top: 110px; }
.vs-wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.vs-angosto { max-width: 680px; }
.vs-ico { width: 1.2em; height: 1.2em; vertical-align: -0.22em; flex: 0 0 auto; }
.vs-main h1, .vs-main h2, .vs-main h3 { color: var(--vs-marino); letter-spacing: -0.015em; line-height: 1.2; }
.vs-main a { color: var(--vs-acero); }

/* ---------- Encabezado de listado (hero) ---------- */
.vs-hero { background: radial-gradient(900px 380px at 90% -20%, rgba(22,163,74,.2), transparent 60%), linear-gradient(165deg, var(--vs-marino), var(--vs-acero)); color: #fff; padding: 26px 0 24px; margin-bottom: 20px; }
.vs-hero .vs-migas a, .vs-hero .vs-migas span { color: #CBD5E1; }
.vs-hero__titulo { color: #fff !important; font-size: clamp(1.7rem, 6.4vw, 2.6rem); line-height: 1.1; margin: 4px 0 8px; }
.vs-hero__sub { color: #DBEAFE; font-size: 1.07rem; margin: 0 0 18px; max-width: 46em; }
.vs-hero--empresas { padding: 32px 0 30px; }
.vs-hero--empresas .vs-acciones { margin-bottom: 0; }
.vs-sobretitulo { text-transform: uppercase; font-size: .8rem; letter-spacing: .08em; font-weight: 800; color: var(--vs-verde-osc); margin: 0; }
.vs-hero .vs-sobretitulo { color: #86EFAC; }
.vs-migas { display: flex; flex-wrap: wrap; gap: 6px; font-size: .92rem; margin: 8px 0 12px; align-items: center; }
.vs-migas a { text-decoration: none; display: inline-flex; align-items: center; gap: 2px; min-height: 32px; }
.vs-migas a:hover { text-decoration: underline; }

/* ---------- Filtros ---------- */
.vs-filtros { background: #fff; border-radius: 18px; padding: 14px; color: var(--vs-tinta); display: grid; gap: 12px; box-shadow: 0 16px 36px rgba(2,12,27,.3); }
.vs-filtros__fila { display: grid; grid-template-columns: 1fr; gap: 10px; }
.vs-filtros__mas summary { cursor: pointer; color: var(--vs-acero); font-weight: 700; font-size: .97rem; padding: 6px 0; list-style: none; display: flex; align-items: center; gap: 8px; min-height: 40px; }
.vs-filtros__mas summary::-webkit-details-marker { display: none; }
.vs-filtros__mas summary::before { content: ""; width: 22px; height: 22px; border-radius: 50%; background: var(--vs-verde-claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315803D' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") no-repeat center / 13px; flex: 0 0 auto; transition: transform .2s; }
.vs-filtros__mas[open] summary::before { transform: rotate(45deg); }
.vs-filtros__mas .vs-filtros__fila { margin-top: 8px; }
.vs-filtros .vs-btn--primary { min-height: 54px; font-size: 1.08rem; }
@media (min-width: 768px) {
  .vs-filtros { padding: 18px; }
  .vs-filtros__fila { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vs-filtros__mas .vs-filtros__fila { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- Formularios ---------- */
.vs-form { display: grid; gap: 16px; }
.vs-form__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .vs-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vs-field--ancho { grid-column: 1 / -1; } }
.vs-field { display: grid; gap: 6px; margin: 0; border: 0; padding: 0; min-width: 0; }
.vs-field__label { font-weight: 800; font-size: 1rem; color: var(--vs-tinta); padding: 0; }
.vs-field__error { color: #B91C1C; font-size: .92rem; font-weight: 700; }
.vs-input { width: 100%; min-height: 52px; padding: 12px 14px; border: 1.5px solid #CBD5E1; border-radius: 12px; background: #fff; color: var(--vs-tinta); font-size: 17px; font-family: inherit; line-height: 1.3; }
select.vs-input { padding-right: 42px; -webkit-appearance: none; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313315C' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 20px; }
textarea.vs-input { min-height: 110px; resize: vertical; }
.vs-input::placeholder { color: #94A3B8; }
.vs-input:focus { outline: 3px solid rgba(22,163,74,.35); border-color: var(--vs-verde); }
.vs-field__error ~ .vs-input, .vs-input[aria-invalid="true"] { border-color: #DC2626; }
.vs-input--mayus { text-transform: uppercase; }
.vs-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.vs-checks--fila { display: flex; flex-wrap: wrap; }
.vs-check { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px; border: 1.5px solid var(--vs-borde); border-radius: 12px; background: #fff; cursor: pointer; font-size: 1rem; line-height: 1.25; transition: border-color .15s, background .15s; }
.vs-check:hover { border-color: #94A3B8; }
.vs-check:has(input:checked) { border-color: var(--vs-verde); background: #F0FDF4; }
.vs-check input { width: 22px; height: 22px; accent-color: var(--vs-verde); flex: 0 0 auto; margin: 0; }
.vs-check--legal { align-items: flex-start; border: 0; padding: 0; background: transparent !important; }
.vs-check--legal input { margin-top: 2px; }
.vs-sueldo { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vs-legal, .vs-ayuda { font-size: .88rem; color: var(--vs-gris); margin: 0; }
.vs-form-card { background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 20px; box-shadow: 0 6px 22px rgba(15,23,42,.06); }
.vs-form-card__titulo { font-size: 1.4rem; margin: 0 0 4px; }
.vs-form-card__sub { color: var(--vs-gris-osc); margin: 0 0 16px; }

/* ---------- Botones (48 px minimo) ---------- */
.vs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 20px; border-radius: 12px; border: 2px solid transparent; font-weight: 800; font-size: 1.02rem; text-decoration: none !important; cursor: pointer; line-height: 1.2; text-align: center; font-family: inherit; transition: background .15s, border-color .15s, transform .1s; }
.vs-btn:active { transform: translateY(1px); }
.vs-btn[disabled] { opacity: .6; cursor: progress; }
.vs-btn--primary { background: var(--vs-verde); color: #fff !important; }
.vs-btn--primary:hover { background: var(--vs-verde-osc); }
.vs-btn--ghost { background: #fff; color: var(--vs-marino) !important; border-color: #CBD5E1; }
.vs-btn--ghost:hover { border-color: var(--vs-marino); }
.vs-btn--claro, .vs-btn--ghost.vs-btn--claro { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.6); }
.vs-btn--claro:hover { background: rgba(255,255,255,.08); border-color: #fff; }
.vs-btn--wa { background: #fff; color: #0E7A3F !important; border-color: #25D366; }
.vs-btn--wa:hover { background: #F0FDF4; }
.vs-btn--block { width: 100%; }
.vs-btn--grande { min-height: 56px; font-size: 1.1rem; }
.vs-btn--chico { min-height: 44px; padding: 6px 14px; font-size: .95rem; border-radius: 10px; }
.vs-btn--on { background: var(--vs-marino); color: #fff !important; border-color: var(--vs-marino); }
@media (max-width: 767px) { .vs-btn--block-m { width: 100%; } }
.vs-acciones { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.vs-inline { display: inline-flex; flex-wrap: wrap; gap: 6px; margin: 0; }

/* ---------- Avisos ---------- */
.vs-alert { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: 14px; margin: 0 0 16px; font-weight: 700; }
.vs-alert p { margin: 4px 0 0; font-weight: 400; }
.vs-alert--ok { background: var(--vs-verde-claro); color: #14532D; }
.vs-alert--error { background: #FEE2E2; color: #7F1D1D; }
.vs-alert--aviso { background: #FEF3C7; color: #78350F; }
.vs-alert--grande { padding: 18px; font-size: 1.07rem; }
.vs-antifraude { display: flex; gap: 12px; align-items: center; background: var(--vs-verde-claro); color: #14532D; border-radius: 14px; padding: 14px 16px; margin: 0 0 20px; }
.vs-antifraude p { margin: 0; font-size: 1rem; }
.vs-antifraude .vs-ico { width: 28px; height: 28px; color: var(--vs-verde); }
/* Si la pagina ya trae el aviso antifraude, no repetirlo en el pie. */
body:has(.vs-antifraude) .vs-footer__franja, body:has(.vs-franja) .vs-footer__franja { display: none; }

/* ---------- Chips de zona ---------- */
.vs-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 12px; margin-bottom: 6px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.vs-chip { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 999px; background: #fff; border: 1.5px solid var(--vs-borde); text-decoration: none; color: var(--vs-marino) !important; font-size: .95rem; font-weight: 650; white-space: nowrap; }
.vs-chip:hover { border-color: var(--vs-verde); }
.vs-chip b { color: var(--vs-verde-osc); margin-left: 6px; }
.vs-chip--on { border-color: var(--vs-verde); background: var(--vs-verde-claro); }
.vs-resultados { color: var(--vs-gris-osc); font-weight: 800; margin: 0 0 12px; font-size: 1.05rem; }

/* ---------- Tarjetas de vacante ---------- */
.vs-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 700px) { .vs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } }
.vs-card { position: relative; background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); box-shadow: 0 2px 10px rgba(15,23,42,.05); transition: box-shadow .15s, transform .15s, border-color .15s; min-width: 0; overflow: hidden; }
.vs-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--vs-verde); }
.vs-card--armado::before { background: var(--vs-ambar); }
.vs-card:hover { box-shadow: 0 12px 28px rgba(11,37,69,.13); transform: translateY(-2px); border-color: #CBD5E1; }
.vs-card__link { display: flex; flex-direction: column; gap: 10px; padding: 16px 16px 16px 21px; color: inherit !important; text-decoration: none !important; height: 100%; }
.vs-card__top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.vs-card__sueldo { margin: 0; font-size: 1.9rem; font-weight: 850; color: var(--vs-verde-osc); line-height: 1.05; letter-spacing: -0.02em; }
.vs-card__periodo { display: inline-block; font-size: .92rem; font-weight: 700; color: var(--vs-gris); letter-spacing: 0; }
.vs-card__titulo { margin: 0; font-size: 1.15rem; line-height: 1.3; color: var(--vs-marino); overflow-wrap: break-word; }
.vs-card__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.vs-tag { display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border-radius: 9px; background: #F1F5F9; color: var(--vs-tinta); font-size: .88rem; font-weight: 700; line-height: 1.2; }
.vs-tag--turno { background: var(--vs-marino); color: #fff; font-size: .95rem; }
.vs-tag--zona { background: #EFF6FF; color: var(--vs-acero); }
.vs-tag--armado { background: #FEF3C7; color: #78350F; }
.vs-tag--noarmado { background: #F1F5F9; color: var(--vs-gris-osc); }
.vs-tag--servicio { background: #F1F5F9; color: var(--vs-gris-osc); }
.vs-card__prest { margin: 0; font-size: .92rem; color: var(--vs-gris-osc); }
.vs-card__empresa { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: .95rem; font-weight: 700; color: var(--vs-tinta); padding-top: 10px; border-top: 1px dashed var(--vs-borde); margin-top: auto; }
.vs-card__cta { color: var(--vs-verde-osc); font-weight: 800; font-size: 1rem; display: inline-flex; gap: 4px; align-items: center; min-height: 32px; }
.vs-card:hover .vs-card__cta { text-decoration: underline; }
.vs-badge-permiso { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; background: var(--vs-verde-claro); color: #166534; font-size: .82rem; font-weight: 800; margin: 0; white-space: nowrap; }
.vs-demo-tag { display: inline-block; padding: 3px 8px; border-radius: 6px; background: #FEF3C7; color: #92400E; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.vs-demo-aviso { margin: 0 0 10px; color: #92400E; font-size: .92rem; }

/* ---------- Ficha de vacante ---------- */
.vs-ficha { padding-top: 10px; }
.vs-ficha__grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 960px) { .vs-ficha__grid { grid-template-columns: minmax(0, 1fr) 420px; align-items: start; gap: 28px; } .vs-ficha__lado { position: sticky; top: 96px; } }
.vs-ficha__main { background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 20px; min-width: 0; }
.vs-ficha__head { padding-bottom: 14px; border-bottom: 1px solid var(--vs-borde); }
.vs-ficha__titulo { font-size: clamp(1.45rem, 5.4vw, 2.1rem); margin: 0 0 8px; overflow-wrap: break-word; }
.vs-ficha__sueldo { font-size: clamp(2.2rem, 10vw, 3rem); font-weight: 850; color: var(--vs-verde-osc); margin: 0 0 10px; line-height: 1; letter-spacing: -0.02em; }
.vs-ficha__periodo { font-size: 1.05rem; color: var(--vs-gris); font-weight: 700; letter-spacing: 0; }
.vs-ficha__empresa { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-weight: 800; font-size: 1.05rem; }
.vs-ficha__datos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.vs-dato { background: var(--vs-fondo); border: 1px solid var(--vs-borde); border-radius: 14px; padding: 12px 14px; margin: 0; min-width: 0; }
.vs-dato:first-child { background: var(--vs-marino); border-color: var(--vs-marino); }
.vs-dato:first-child dt { color: #BFDBFE; }
.vs-dato:first-child dd { color: #fff; font-size: 1.35rem; }
.vs-dato dt { font-size: .85rem; color: var(--vs-gris); font-weight: 800; margin: 0 0 4px; display: flex; gap: 5px; align-items: center; }
.vs-dato dd { margin: 0; font-weight: 800; font-size: 1.05rem; overflow-wrap: break-word; color: var(--vs-tinta); }
.vs-ficha__sec { margin: 20px 0 0; }
.vs-ficha__sec h2 { font-size: 1.15rem; margin: 0 0 10px; }
.vs-lista-check, .vs-lista-docs { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.vs-lista-check li { display: inline-flex; gap: 6px; align-items: center; padding: 8px 12px; border-radius: 10px; background: var(--vs-verde-claro); color: #14532D; font-weight: 700; }
.vs-lista-docs li { display: inline-flex; gap: 6px; align-items: center; padding: 8px 12px; border-radius: 10px; background: #F1F5F9; font-weight: 600; }
.vs-texto { line-height: 1.65; overflow-wrap: break-word; font-size: 1.04rem; }
.vs-ficha__fecha { color: var(--vs-gris); font-size: .9rem; margin: 20px 0 0; }
.vs-ficha__lado { display: grid; gap: 14px; min-width: 0; }
.vs-form-interes { border: 2px solid var(--vs-verde); }
.vs-reportar { background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 4px 16px; }
.vs-reportar summary { cursor: pointer; font-weight: 800; color: #B91C1C; display: flex; gap: 8px; align-items: center; min-height: 48px; list-style: none; }
.vs-reportar summary::-webkit-details-marker { display: none; }
.vs-reportar[open] { padding-bottom: 16px; }
.vs-reportar .vs-form { margin-top: 8px; }
.vs-barra-movil { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--vs-borde); box-shadow: 0 -6px 18px rgba(15,23,42,.1); }
.vs-barra-movil__sueldo { font-weight: 850; color: var(--vs-verde-osc); font-size: 1.3rem; line-height: 1.1; }
.vs-barra-movil__sueldo small { color: var(--vs-gris); font-weight: 700; font-size: .82rem; }
.vs-barra-movil .vs-btn { min-height: 50px; padding: 0 22px; }
@media (min-width: 960px) { .vs-barra-movil { display: none; } }
.vs-v-vacante .vs-main { padding-bottom: 96px; }

/* ---------- Seguimiento del candidato ---------- */
.vs-seguimiento { padding-top: 20px; max-width: 760px; }
.vs-folio { color: var(--vs-gris); margin: 0; font-weight: 700; }
.vs-seguimiento__head h1 { margin: 2px 0 4px; font-size: clamp(1.4rem, 5vw, 1.9rem); overflow-wrap: break-word; }
.vs-seguimiento__empresa { color: var(--vs-gris-osc); margin: 0 0 16px; }
.vs-estado-actual { background: linear-gradient(160deg, var(--vs-marino), var(--vs-acero)); color: #fff; border-radius: var(--vs-radio); padding: 20px; margin: 0 0 18px; }
.vs-estado-actual__label { margin: 0; color: #CBD5E1; font-size: .92rem; }
.vs-estado-actual__valor { margin: 2px 0 6px; font-size: 1.8rem; font-weight: 850; }
.vs-estado-actual--contratado { background: linear-gradient(160deg, var(--vs-verde-osc), #166534); }
.vs-estado-actual--no { background: #475569; }
.vs-estado-actual__txt { margin: 0; color: #E2E8F0; }
.vs-entrevista { background: rgba(255,255,255,.12); border-radius: 12px; padding: 12px 14px; margin-top: 10px; }
.vs-entrevista p { margin: 4px 0; }
.vs-mensaje-empresa { margin: 10px 0 0; color: #F1F5F9; }
.vs-timeline { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 2px; background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 8px 16px; }
.vs-step { display: flex; align-items: center; gap: 12px; padding: 10px 0; color: var(--vs-gris); position: relative; }
.vs-step + .vs-step { border-top: 1px dashed var(--vs-borde); }
.vs-step__punto { width: 30px; height: 30px; border-radius: 50%; border: 2px solid #CBD5E1; display: inline-flex; align-items: center; justify-content: center; background: #fff; flex: 0 0 auto; }
.vs-step--done .vs-step__punto, .vs-step--current .vs-step__punto { background: var(--vs-verde); border-color: var(--vs-verde); color: #fff; }
.vs-step--current .vs-step__punto { box-shadow: 0 0 0 5px var(--vs-verde-claro); }
.vs-step--done, .vs-step--current { color: var(--vs-tinta); font-weight: 800; }
.vs-step--salto { opacity: .55; }
.vs-step__txt small { display: block; color: var(--vs-gris); font-weight: 400; }

/* ---------- Bloques, vacío, páginas ---------- */
.vs-bloque { margin: 32px 0 0; }
.vs-avisame-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--vs-borde); border-left: 5px solid var(--vs-verde); border-radius: var(--vs-radio); padding: 20px; }
.vs-avisame-cta h2 { margin: 0 0 4px; font-size: 1.25rem; }
.vs-avisame-cta p { margin: 0; color: var(--vs-gris-osc); }
.vs-cobertura h2 { font-size: 1.25rem; }
.vs-estados { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.vs-estados a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border-radius: 10px; background: #fff; border: 1px dashed #CBD5E1; text-decoration: none; font-size: .9rem; color: var(--vs-gris-osc); }
.vs-estados a:hover { border-style: solid; border-color: var(--vs-acero); }
.vs-empty { text-align: center; background: #fff; border: 1px dashed #CBD5E1; border-radius: var(--vs-radio); padding: 30px 20px; display: grid; gap: 12px; justify-items: center; }
.vs-empty h2 { margin: 0; font-size: 1.25rem; }
.vs-empty p { margin: 0; color: var(--vs-gris-osc); }
.vs-empty__ico { width: 48px; height: 48px; color: var(--vs-verde); }
.vs-paginas { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 24px 0 0; }
.vs-pagina { min-width: 48px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: #fff; border: 1px solid var(--vs-borde); text-decoration: none; font-weight: 800; }
.vs-pagina--on { background: var(--vs-marino); color: #fff !important; border-color: var(--vs-marino); }
.vs-pagina-head { padding: 24px 0 12px; }
.vs-pagina-head h1 { margin: 0 0 6px; font-size: clamp(1.6rem, 6vw, 2.2rem); display: flex; gap: 10px; align-items: center; }
.vs-pagina-head p { margin: 0; color: var(--vs-gris-osc); font-size: 1.05rem; }
.vs-mensaje { padding: 40px 20px; }
.vs-mensaje__caja { max-width: 580px; margin: 0 auto; text-align: center; background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 30px 22px; display: grid; gap: 12px; justify-items: center; box-shadow: 0 6px 22px rgba(15,23,42,.06); }
.vs-mensaje__caja h1 { margin: 0; font-size: 1.6rem; }
.vs-mensaje__caja p { margin: 0; color: var(--vs-gris-osc); overflow-wrap: break-word; }
.vs-mensaje__ico { width: 52px; height: 52px; color: var(--vs-verde); }
.vs-proximamente .vs-form-card { margin-top: 8px; }
.vs-proximamente__activos { margin: 20px 0 0; color: var(--vs-gris-osc); }

/* ---------- Texto legal (aviso de privacidad) ---------- */
.vs-texto-legal { padding-top: 24px; line-height: 1.7; font-size: 1.04rem; color: #1E293B; max-width: 820px; }
.vs-texto-legal h1 { font-size: clamp(1.7rem, 6vw, 2.4rem); margin: 0 0 14px; }
.vs-texto-legal h2 { font-size: 1.3rem; margin: 1.8em 0 .5em; }
.vs-texto-legal h3 { font-size: 1.1rem; margin: 1.4em 0 .4em; color: var(--vs-acero); }
.vs-texto-legal ul, .vs-texto-legal ol { padding-left: 1.3em; }
.vs-texto-legal li { margin: .3em 0; }
.vs-texto-legal a { color: var(--vs-verde-osc); font-weight: 650; }
.vs-texto-legal .vs-nota { border-radius: 14px; padding: 14px 16px; margin: 1.2em 0; background: #EFF6FF; border-left: 5px solid var(--vs-acero); color: #1E3A8A; }
.vs-texto-legal .vs-nota--alerta { background: #FFFBEB; border-left-color: var(--vs-ambar); color: #78350F; }
.vs-texto-legal .vs-nota--ok { background: var(--vs-verde-claro); border-left-color: var(--vs-verde); color: #14532D; }
.vs-texto-legal__fecha { color: var(--vs-gris); font-size: .92rem; margin: 0 0 16px; }

/* ---------- Empresas ---------- */
.vs-pasos { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
@media (min-width: 900px) { .vs-pasos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vs-pasos li { display: flex; gap: 12px; background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 16px; }
.vs-pasos b { font-size: 1.05rem; color: var(--vs-marino); }
.vs-pasos p { margin: 4px 0 0; color: var(--vs-gris-osc); font-size: .97rem; }
.vs-pasos__n { width: 38px; height: 38px; border-radius: 12px; background: var(--vs-verde); color: #fff; font-weight: 850; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.vs-beneficios { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 10px; }
.vs-beneficios li { display: flex; gap: 10px; align-items: center; font-weight: 700; }
.vs-beneficios .vs-ico { color: var(--vs-verde); width: 24px; height: 24px; }
.vs-registro { margin-bottom: 20px; }

/* ---------- Mini panel de empresa ---------- */
.vs-panel { padding-top: 18px; }
.vs-panel-nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; background: linear-gradient(160deg, var(--vs-marino), var(--vs-acero)); color: #fff; border-radius: var(--vs-radio); padding: 14px 16px; margin: 0 0 18px; }
.vs-panel-nav__empresa { margin: 0; font-weight: 850; display: flex; gap: 6px; align-items: center; font-size: 1.05rem; }
.vs-panel-nav .vs-badge-permiso, .vs-panel-nav .vs-pill { margin-top: 4px; }
.vs-panel-nav__links { display: flex; flex-wrap: wrap; gap: 6px; }
.vs-panel-nav__links a { color: #fff !important; text-decoration: none; padding: 0 12px; min-height: 44px; border-radius: 10px; background: rgba(255,255,255,.1); font-weight: 700; font-size: .95rem; display: inline-flex; gap: 6px; align-items: center; }
.vs-panel-nav__links a:hover { background: rgba(255,255,255,.18); }
.vs-panel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 16px; }
.vs-panel__head h1 { margin: 0; font-size: 1.6rem; }
.vs-pill { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: .8rem; font-weight: 850; background: #E2E8F0; color: var(--vs-tinta); margin: 0; }
.vs-pill--publicada, .vs-pill--contratado, .vs-pill--aprobada { background: var(--vs-verde-claro); color: #166534; }
.vs-pill--pendiente, .vs-pill--recibida { background: #FEF3C7; color: #92400E; }
.vs-pill--rechazada, .vs-pill--no, .vs-pill--suspendida { background: #FEE2E2; color: #991B1B; }
.vs-pill--entrevista, .vs-pill--llamar { background: #DBEAFE; color: #1E3A8A; }
.vs-pill--vista { background: #E0E7FF; color: #3730A3; }
.vs-pill--pausada, .vs-pill--cerrada, .vs-pill--vencida { background: #F1F5F9; color: var(--vs-gris-osc); }
.vs-mis-vacantes, .vs-interesados { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.vs-mi-vacante, .vs-interesado { background: #fff; border: 1px solid var(--vs-borde); border-radius: var(--vs-radio); padding: 16px; display: grid; gap: 12px; min-width: 0; }
@media (min-width: 900px) { .vs-mi-vacante, .vs-interesado { grid-template-columns: minmax(0, 1fr) auto; align-items: start; } }
.vs-mi-vacante h2, .vs-interesado h2 { margin: 6px 0 4px; font-size: 1.15rem; overflow-wrap: break-word; }
.vs-interesado h2 small { color: var(--vs-gris); font-weight: 700; font-size: .82rem; }
.vs-mi-vacante p, .vs-interesado p { margin: 0 0 4px; color: var(--vs-gris-osc); font-size: .97rem; overflow-wrap: break-word; }
.vs-mi-vacante__nums b { color: var(--vs-marino); }
.vs-mi-vacante__acciones, .vs-interesado__acciones { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
.vs-toques { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.vs-entrevista-form summary { list-style: none; }
.vs-entrevista-form summary::-webkit-details-marker { display: none; }
.vs-entrevista-form[open] .vs-form { margin-top: 8px; background: var(--vs-fondo); padding: 12px; border-radius: 12px; }
.vs-editor { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 1024px) { .vs-editor { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; } .vs-editor__preview { position: sticky; top: 96px; } }
.vs-editor__preview-titulo { font-weight: 800; color: var(--vs-gris); margin: 0 0 8px; display: flex; gap: 6px; align-items: center; }

/* Paquete anuncio (SPEC §6): zona amplia ocupa todo el ancho de los datos de la ficha. */
.vs-dato--ancho { grid-column: 1 / -1; }
