﻿/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   ASOCOLVAS EMPLEO â€” DiseÃ±o Oficial v17
   Paleta: Amarillo #F5C800 Â· Negro #111827 Â· Blanco #FFFFFF
   Google Fonts cargada via wp_enqueue_style (no @import)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

:root {
    --ac-yellow:      #F5C800;
    --ac-yellow-dk:   #D4A900;
    --ac-yellow-lt:   #FFFBEA;
    --ac-yellow-md:   #FEF3C7;
    --ac-black:       #111827;
    --ac-black-80:    #1F2937;
    --ac-black-60:    #4B5563;
    --ac-black-40:    #9CA3AF;
    --ac-black-20:    #E5E7EB;
    --ac-white:       #FFFFFF;
    --ac-bg:          #F9FAFB;
    --ac-bg-dark:     #F3F4F6;
    --ac-success:     #059669;
    --ac-success-lt:  #D1FAE5;
    --ac-danger:      #DC2626;
    --ac-danger-lt:   #FEE2E2;
    --ac-red:         #DC2626;
    --ac-red-dk:      #B91C1C;
    --ac-blue:        #2563EB;
    --ac-blue-lt:     #DBEAFE;
    --ac-border:      #E5E7EB;
    --ac-muted:       #6B7280;
    --ac-radius:      8px;
    --ac-radius-lg:   14px;
    --ac-radius-xl:   20px;
    --ac-font:        'Barlow', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --ac-font-display:'Barlow Condensed', sans-serif;
    --ac-shadow-xs:   0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);
    --ac-shadow:      0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.05);
    --ac-shadow-lg:   0 12px 40px rgba(0,0,0,.14), 0 4px 12px rgba(0,0,0,.08);
    --ac-shadow-xl:   0 24px 64px rgba(0,0,0,.18), 0 8px 24px rgba(0,0,0,.10);
    --ac-transition:  .2s cubic-bezier(.4,0,.2,1);
}

/* â”€â”€ BASE â”€â”€ */
.ac-portal { font-family:var(--ac-font); color:var(--ac-black); max-width:1100px; margin:0 auto; line-height:1.6; box-sizing:border-box; }
.ac-portal *, .ac-portal *::before, .ac-portal *::after { box-sizing:border-box; }
.ac-hp { position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none; }

/* â”€â”€ TIPOGRAFÃA â”€â”€ */
.ac-portal h1,.ac-portal h2,.ac-portal h3 { font-family:var(--ac-font-display); font-weight:800; letter-spacing:-.02em; color:var(--ac-black); line-height:1.15; }
.ac-portal h2 { font-size:clamp(20px, 3.5vw, 26px); margin:0 0 20px; }
.ac-portal h3 { font-size:clamp(15px, 2.5vw, 18px); margin:0 0 12px; }

/* â”€â”€ AVISOS â”€â”€ */
.ac-aviso-info { background:var(--ac-yellow-lt); border:1px solid rgba(245,200,0,.4); border-left:4px solid var(--ac-yellow-dk); border-radius:var(--ac-radius); padding:14px 18px; margin-bottom:24px; font-size:14px; color:#78530a; font-weight:500; }
.ac-aviso      { background:var(--ac-yellow-lt); border:1px solid rgba(245,200,0,.4); border-radius:var(--ac-radius); padding:14px 18px; margin:16px 0; font-size:14px; color:#78530a; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   BOTONES â€” sistema completo
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ac-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    padding:10px 22px; border-radius:var(--ac-radius);
    font-size:13.5px; font-weight:700; font-family:var(--ac-font);
    text-decoration:none; border:2px solid transparent; cursor:pointer;
    transition:background var(--ac-transition), color var(--ac-transition),
               border-color var(--ac-transition), transform var(--ac-transition),
               box-shadow var(--ac-transition), opacity var(--ac-transition);
    letter-spacing:.02em; line-height:1.3; white-space:nowrap;
    -webkit-font-smoothing:antialiased;
}

/* â”€â”€ Amarillo â€” acciÃ³n principal â”€â”€ */
.ac-btn-primary {
    background: var(--ac-yellow);
    color: var(--ac-black);
    border-color: var(--ac-yellow);
    box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 0 0 0 rgba(245,200,0,0);
}
.ac-btn-primary:hover {
    background: var(--ac-yellow-dk);
    border-color: var(--ac-yellow-dk);
    color: var(--ac-black);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(212,169,0,.45), 0 2px 6px rgba(0,0,0,.1);
}
.ac-btn-primary:not(:hover) {
    background: var(--ac-yellow);
    color: var(--ac-black);
    border-color: var(--ac-yellow);
    transform: translateY(0);
    box-shadow: 0 1px 3px rgba(0,0,0,.12);
}
.ac-btn-primary:active { transform: translateY(0) scale(.98); }

/* â”€â”€ Negro outline â€” acciÃ³n secundaria â”€â”€ */
.ac-btn-outline {
    background: transparent;
    color: var(--ac-black);
    border-color: var(--ac-black-20);
}
.ac-btn-outline:hover {
    background: var(--ac-black);
    color: var(--ac-yellow);
    border-color: var(--ac-black);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.ac-btn-outline:not(:hover) {
    background: transparent;
    color: var(--ac-black);
    border-color: var(--ac-black-20);
    transform: translateY(0);
    box-shadow: none;
}

/* â”€â”€ Botones de descarga â€” hover AMARILLO con flecha animada â”€â”€ */
.ac-btn-download,
.ac-recurso-card .ac-btn {
    background: transparent;
    color: var(--ac-black);
    border-color: var(--ac-black);
    position: relative;
    overflow: hidden;
    min-width: 130px;
}

/* Texto "Descargar" */
.ac-btn-download .ac-btn-label,
.ac-recurso-card .ac-btn .ac-btn-label {
    display: inline-block;
    transition: opacity .22s ease, transform .22s ease;
    transform: translateY(0);
    opacity: 1;
}

/* Contenedor flecha */
.ac-btn-download .ac-arrow-wrap,
.ac-recurso-card .ac-btn .ac-arrow-wrap {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-6px) scale(.85);
    transition: opacity .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.ac-btn-download .ac-arrow-wrap svg,
.ac-recurso-card .ac-btn .ac-arrow-wrap svg {
    width: 28px;
    height: 28px;
    overflow: visible;
}

/* Trazos SVG */
.ac-arrow-shaft  { stroke-dasharray:18; stroke-dashoffset:18; transition:stroke-dashoffset .0s; }
.ac-arrow-head-l { stroke-dasharray:10; stroke-dashoffset:10; transition:stroke-dashoffset .0s; }
.ac-arrow-head-r { stroke-dasharray:10; stroke-dashoffset:10; transition:stroke-dashoffset .0s; }

/* HOVER â€” fondo amarillo oscuro para que el negro se vea bien */
.ac-btn-download:hover,
.ac-recurso-card .ac-btn:hover {
    background: var(--ac-yellow-dk);
    color: var(--ac-black) !important;
    border-color: var(--ac-yellow-dk);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(212,169,0,.5);
}
/* Vuelta al estado original */
.ac-btn-download:not(:hover),
.ac-recurso-card .ac-btn:not(:hover) {
    background: transparent;
    color: var(--ac-black);
    border-color: var(--ac-black);
    transform: translateY(0);
    box-shadow: none;
}

.ac-btn-download:hover .ac-btn-label,
.ac-recurso-card .ac-btn:hover .ac-btn-label {
    opacity: 0;
    transform: translateY(-8px);
}
.ac-btn-download:not(:hover) .ac-btn-label,
.ac-recurso-card .ac-btn:not(:hover) .ac-btn-label {
    opacity: 1;
    transform: translateY(0);
}

.ac-btn-download:hover .ac-arrow-wrap,
.ac-recurso-card .ac-btn:hover .ac-arrow-wrap {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.ac-btn-download:not(:hover) .ac-arrow-wrap,
.ac-recurso-card .ac-btn:not(:hover) .ac-arrow-wrap {
    opacity: 0;
    transform: translateY(-6px) scale(.85);
}

.ac-btn-download:hover .ac-arrow-shaft,
.ac-recurso-card .ac-btn:hover .ac-arrow-shaft {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset .3s cubic-bezier(.4,0,.2,1) .05s;
}
.ac-btn-download:hover .ac-arrow-head-l,
.ac-recurso-card .ac-btn:hover .ac-arrow-head-l {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset .22s cubic-bezier(.4,0,.2,1) .28s;
}
.ac-btn-download:hover .ac-arrow-head-r,
.ac-recurso-card .ac-btn:hover .ac-arrow-head-r {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset .22s cubic-bezier(.4,0,.2,1) .28s;
}
.ac-btn-download:not(:hover) .ac-arrow-shaft  { stroke-dashoffset: 18; transition: stroke-dashoffset .15s ease; }
.ac-btn-download:not(:hover) .ac-arrow-head-l { stroke-dashoffset: 10; transition: stroke-dashoffset .1s ease; }
.ac-btn-download:not(:hover) .ac-arrow-head-r { stroke-dashoffset: 10; transition: stroke-dashoffset .1s ease; }
.ac-recurso-card .ac-btn:not(:hover) .ac-arrow-shaft  { stroke-dashoffset: 18; transition: stroke-dashoffset .15s ease; }
.ac-recurso-card .ac-btn:not(:hover) .ac-arrow-head-l { stroke-dashoffset: 10; transition: stroke-dashoffset .1s ease; }
.ac-recurso-card .ac-btn:not(:hover) .ac-arrow-head-r { stroke-dashoffset: 10; transition: stroke-dashoffset .1s ease; }

.ac-btn-download:hover .ac-arrow-wrap svg,
.ac-recurso-card .ac-btn:hover .ac-arrow-wrap svg {
    animation: ac-arrow-float .9s ease-in-out infinite alternate;
}
.ac-btn-download:not(:hover) .ac-arrow-wrap svg,
.ac-recurso-card .ac-btn:not(:hover) .ac-arrow-wrap svg {
    animation: none;
}

@keyframes ac-arrow-float {
    0%   { transform: translateY(0px); }
    100% { transform: translateY(5px); filter: drop-shadow(0 4px 6px rgba(0,0,0,.18)); }
}

/* Pulso de brillo */
.ac-btn-download::before,
.ac-recurso-card .ac-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.55) 50%, transparent 60%);
    transform: translateX(-100%);
    transition: transform 0s;
    pointer-events: none;
}
.ac-btn-download:hover::before,
.ac-recurso-card .ac-btn:hover::before {
    transform: translateX(200%);
    transition: transform .55s ease .05s;
}
.ac-btn-download:not(:hover)::before,
.ac-recurso-card .ac-btn:not(:hover)::before {
    transform: translateX(-100%);
    transition: transform 0s;
}

.ac-btn-grande { padding:12px 28px; font-size:15px; }
.ac-btn-sm { padding:7px 14px; font-size:12.5px; }
.ac-btn:disabled { opacity:.45; cursor:not-allowed; transform:none !important; box-shadow:none !important; filter:grayscale(.3); }

/* â”€â”€ TAGS â”€â”€ */
.ac-tag { display:inline-flex; align-items:center; gap:4px; padding:3px 11px; background:var(--ac-bg-dark); border-radius:20px; font-size:11.5px; color:var(--ac-black-80); font-weight:600; letter-spacing:.01em; }
.ac-tag-permiso   { background:var(--ac-success-lt); color:#065f46; }
.ac-tag-nopermiso { background:var(--ac-yellow-md);  color:#92400e; }
.ac-tag-rojo      { background:var(--ac-danger-lt);  color:#991b1b; }
.ac-tag-verde     { background:#d1fae5; color:#065f46; }
.ac-tag-azul      { background:var(--ac-blue-lt); color:#1e40af; }
.ac-tag-gris      { background:#f3f4f6; color:#374151; }

/* â”€â”€ FORMULARIOS â”€â”€ */
.ac-form .ac-campo { margin-bottom:20px; }
.ac-form label { display:block; font-weight:700; font-size:11px; margin-bottom:6px; color:var(--ac-muted); text-transform:uppercase; letter-spacing:.06em; }
.ac-form input[type="text"],
.ac-form input[type="email"],
.ac-form input[type="tel"],
.ac-form input[type="url"],
.ac-form input[type="number"],
.ac-form input[type="date"],
.ac-form input[type="time"],
.ac-form input[type="password"],
.ac-form select,
.ac-form textarea {
    width:100%; padding:11px 15px; border:1.5px solid var(--ac-border);
    border-radius:var(--ac-radius); font-size:14px; font-family:var(--ac-font);
    transition:border-color var(--ac-transition), box-shadow var(--ac-transition),
               background var(--ac-transition);
    background:var(--ac-white); color:var(--ac-black); appearance:auto;
    line-height:1.5;
}
.ac-form input[type="text"]:hover,
.ac-form input[type="email"]:hover,
.ac-form select:hover,
.ac-form textarea:hover { border-color:var(--ac-black-40); }
.ac-form input:focus,.ac-form select:focus,.ac-form textarea:focus { outline:none; border-color:var(--ac-yellow-dk); box-shadow:0 0 0 3px rgba(245,200,0,.18); background:#fff; }
.ac-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.ac-form-col h3 { margin:0 0 16px; font-size:16px; border-bottom:3px solid var(--ac-yellow); padding-bottom:8px; }
.req { color:var(--ac-danger); }
.ac-hint { font-size:12px; color:var(--ac-muted); font-weight:400; margin-left:4px; }
.ac-campo-rgpd { background:var(--ac-yellow-lt); border:1px solid rgba(245,200,0,.4); border-radius:var(--ac-radius); padding:16px; margin-bottom:16px; }
.ac-campo-rgpd label { display:flex; gap:10px; align-items:flex-start; font-weight:400; cursor:pointer; text-transform:none; letter-spacing:0; font-size:14px; color:var(--ac-black); }
.ac-campo-rgpd input[type="checkbox"] { margin-top:3px; flex-shrink:0; accent-color:var(--ac-yellow-dk); }
.ac-check-label { display:flex; align-items:center; gap:8px; font-weight:400; cursor:pointer; }

/* â”€â”€ MENSAJES â”€â”€ */
.ac-mensaje { padding:14px 18px; border-radius:var(--ac-radius); margin-bottom:20px; font-weight:600; font-size:13.5px; display:flex; align-items:flex-start; gap:10px; }
.ac-ok        { background:var(--ac-success-lt); color:#065f46; border:1px solid #a7f3d0; border-left:4px solid var(--ac-success); }
.ac-error     { background:var(--ac-danger-lt);  color:#991b1b; border:1px solid #fca5a5; border-left:4px solid var(--ac-danger); }
.ac-mensaje-ok    { background:var(--ac-success-lt); color:#065f46; border:1px solid #a7f3d0; border-left:4px solid var(--ac-success); }
.ac-mensaje-error { background:var(--ac-danger-lt); color:#991b1b; border:1px solid #fca5a5; border-left:4px solid var(--ac-danger); }
.ac-sin-resultados { text-align:center; padding:48px 24px; border:2px dashed var(--ac-black-20); border-radius:var(--ac-radius-lg); background:var(--ac-bg); }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   BOOKINGS â€” Reserva de cita (Astra)
   Usa variables de Astra + ASOCOLVAS
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Card principal â€” respeta el contenedor de Astra */
.ac-bookings {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 32px;
    background: var(--ac-white, #fff);
    border: 2px solid var(--ac-black, #111827);
    border-radius: var(--ac-radius-lg, 12px);
    overflow: hidden;
    box-shadow: var(--ac-shadow, 0 2px 12px rgba(0,0,0,.10));
    transition: box-shadow .25s ease;
}
.ac-bookings:hover {
    box-shadow: var(--ac-shadow-lg, 0 8px 32px rgba(0,0,0,.18));
}

/* Cabecera â€” estilo ASOCOLVAS (negro + amarillo) */
.ac-bookings-cabecera {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 28px 32px;
    background: var(--ac-black, #111827);
    position: relative;
    overflow: hidden;
}
.ac-bookings-cabecera::before {
    content: '';
    position: absolute;
    top: -30px;
    right: -30px;
    width: 160px;
    height: 160px;
    background: var(--ac-yellow, #F5C800);
    border-radius: 50%;
    opacity: .10;
    pointer-events: none;
}
.ac-bookings-cabecera::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--ac-yellow, #F5C800);
}
.ac-bookings-cabecera-ico {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    background: var(--ac-yellow, #F5C800);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ac-black, #111827);
}
.ac-bookings-cabecera-ico svg { width: 26px; height: 26px; }
.ac-bookings-titulo {
    color: var(--ac-white, #fff);
    font-family: var(--ac-font-display, 'Barlow Condensed', sans-serif);
    font-size: clamp(20px, 4vw, 28px);
    font-weight: 800;
    margin: 0 0 2px;
    line-height: 1.1;
}
.ac-bookings-subtitulo {
    color: rgba(255, 255, 255, .6);
    font-size: 14px;
    margin: 0;
    font-weight: 400;
}

/* Cuerpo â€” fondo claro, padding generoso */
.ac-bookings-cuerpo {
    padding: 0;
    background: var(--ac-white, #fff);
    position: relative;
}

/* Skeleton loader */
.ac-bookings-skeleton {
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    animation: ac-bk-pulse 1.6s ease-in-out infinite;
}
.ac-bookings-sk-bar {
    height: 16px;
    background: var(--ac-bg-dark, #F2F2F2);
    border-radius: var(--ac-radius, 6px);
    width: 100%;
}
.ac-bookings-sk-short { width: 40%; }
.ac-bookings-sk-mid   { width: 65%; }
.ac-bookings-sk-tall  { height: 200px; border-radius: 8px; }
@keyframes ac-bk-pulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: .4; }
}

/* Iframe wrapper + iframe */
.ac-bookings-iframe-wrap {
    position: relative;
    width: 100%;
    line-height: 0;
}
.ac-bookings-iframe {
    display: block;
    width: 100%;
    min-height: 80vh;
    height: 900px;
    border: 0;
    background: var(--ac-white, #fff);
    transition: height .3s ease;
}

/* Fallback */
.ac-bookings-fallback {
    display: none;
    padding: 48px 32px;
    text-align: center;
    background: var(--ac-bg, #FAFAFA);
}
.ac-bookings-fallback-ico {
    font-size: 48px;
    margin-bottom: 16px;
}
.ac-bookings-fallback-titulo {
    font-family: var(--ac-font-display, 'Barlow Condensed', sans-serif);
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--ac-black, #111827);
}
.ac-bookings-fallback-texto {
    font-size: 14px;
    color: var(--ac-muted, #555);
    margin: 0 0 24px;
    line-height: 1.6;
}
.ac-bookings-fallback-nota {
    font-size: 12px;
    color: var(--ac-muted, #555);
    margin: 16px 0 0;
    opacity: .7;
}

/* Redirect notice */
.ac-bookings-redirect {
    text-align: center;
    padding: 40px 20px;
    font-size: 16px;
    color: var(--ac-muted, #555);
    font-weight: 600;
}

/* â”€ Responsive â”€ */
@media (max-width: 768px) {
    .ac-bookings-cabecera { padding: 20px 20px; gap: 12px; }
    .ac-bookings-cabecera-ico { width: 40px; height: 40px; }
    .ac-bookings-cabecera-ico svg { width: 22px; height: 22px; }
    .ac-bookings-titulo { font-size: 20px; }
    .ac-bookings-subtitulo { font-size: 13px; }
    .ac-bookings-skeleton { padding: 28px 20px; }
    .ac-bookings-iframe { min-height: 90vh; height: 1000px; }
    .ac-bookings-fallback { padding: 36px 20px; }
}

/* â”€â”€ LOGIN â”€â”€ */
.ac-login-wrap { display:flex; justify-content:center; padding:48px 16px; min-height:60vh; align-items:center; }
.ac-login-box  {
    background:var(--ac-white);
    border:1px solid var(--ac-border);
    border-radius:var(--ac-radius-lg);
    padding:44px 44px;
    width:100%; max-width:440px;
    box-shadow: var(--ac-shadow-lg);
    position:relative;
}
.ac-login-box::before {
    content:'';
    position:absolute;
    top:0; left:0; right:0;
    height:4px;
    background: linear-gradient(90deg, var(--ac-yellow) 0%, var(--ac-yellow-dk) 100%);
    border-radius:var(--ac-radius-lg) var(--ac-radius-lg) 0 0;
}
.ac-login-logo { font-size:44px; text-align:center; margin-bottom:8px; }
.ac-login-box h2    { font-size:24px; text-align:center; margin:0 0 6px; }
.ac-login-box > p   { text-align:center; color:var(--ac-muted); font-size:13.5px; margin:0 0 28px; }

/* â”€â”€ REGISTRO cabecera â”€â”€ */
.ac-registro-cabecera { background:var(--ac-black); border-radius:var(--ac-radius-lg) var(--ac-radius-lg) 0 0; padding:28px 32px; position:relative; overflow:hidden; }
.ac-registro-cabecera::before { content:''; position:absolute; top:-20px; right:-20px; width:140px; height:140px; background:var(--ac-yellow); border-radius:50%; opacity:.09; }
.ac-registro-cabecera::after  { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ac-yellow) 0%,var(--ac-yellow-dk) 100%); }
.ac-registro-cabecera h2 { color:var(--ac-white); margin:0 0 4px; font-size:clamp(20px,4vw,27px); }
.ac-registro-cabecera p  { color:rgba(255,255,255,.6); margin:0; font-size:13.5px; }
.ac-registro-body { background:var(--ac-white); border:1px solid var(--ac-border); border-top:0; border-radius:0 0 var(--ac-radius-lg) var(--ac-radius-lg); padding:32px; box-shadow:var(--ac-shadow); }

/* â”€â”€ AVISO LOGIN (bolsa) â”€â”€ */
.ac-login-aviso { display:flex; align-items:center; gap:20px; background:linear-gradient(135deg, var(--ac-black) 0%, #1a2035 100%); border-radius:var(--ac-radius-lg); padding:24px 28px; margin-bottom:28px; flex-wrap:wrap; box-shadow:var(--ac-shadow); border:1px solid rgba(255,255,255,.04); }
.ac-login-aviso-ico { font-size:34px; flex-shrink:0; }
.ac-login-aviso-txt { flex:1; min-width:180px; }
.ac-login-aviso-txt strong { display:block; color:var(--ac-yellow); font-family:var(--ac-font-display); font-size:17px; font-weight:800; margin-bottom:4px; }
.ac-login-aviso-txt p { color:rgba(255,255,255,.65); margin:0; font-size:13.5px; }
.ac-login-aviso-txt a { color:var(--ac-yellow); }
.ac-login-aviso-btns { display:flex; gap:10px; flex-wrap:wrap; }

/* â”€â”€ BOLSA DE EMPLEO â”€â”€ */
.ac-ofertas-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; padding-bottom:16px; border-bottom:2px solid var(--ac-border); flex-wrap:wrap; gap:12px; }
.ac-ofertas-header h2 { margin:0; }
.ac-ofertas-grid { display:flex; flex-direction:column; gap:12px; }
.ac-oferta-card { background:var(--ac-white); border:1px solid var(--ac-border); border-radius:var(--ac-radius-lg); padding:22px 26px; transition:all .2s ease; position:relative; box-shadow:var(--ac-shadow-xs); }
.ac-oferta-card:hover { border-color:var(--ac-yellow); transform:translateY(-3px); box-shadow:var(--ac-shadow), 0 3px 0 var(--ac-yellow); }
.ac-oferta-card.ac-caducada { opacity:.5; }
.ac-oferta-head { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.ac-oferta-empresa-logo { width:48px; height:48px; background:linear-gradient(135deg,var(--ac-black) 0%,#1F2937 100%); color:var(--ac-yellow); border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:var(--ac-font-display); font-size:17px; font-weight:900; flex-shrink:0; box-shadow:0 2px 6px rgba(0,0,0,.15); }
.ac-oferta-head > div:nth-child(2) { flex:1; min-width:0; }
.ac-oferta-titulo  { font-family:var(--ac-font-display); font-size:19px; font-weight:800; color:var(--ac-black); margin:0 0 3px; }
.ac-oferta-empresa { font-size:13px; color:var(--ac-muted); margin:0; font-weight:500; }
.ac-oferta-tags    { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.ac-oferta-desc    { font-size:13.5px; color:var(--ac-muted); margin:0 0 14px; line-height:1.65; }
.ac-oferta-footer  { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ac-oferta-login-req { font-size:13px; color:var(--ac-muted); }
.ac-oferta-login-req a { color:var(--ac-black); font-weight:700; text-decoration:underline; text-decoration-color:var(--ac-yellow-dk); }
.ac-sin-ofertas { text-align:center; padding:72px 24px; border:1.5px dashed var(--ac-black-20); border-radius:var(--ac-radius-lg); background:var(--ac-bg); }
.ac-sin-ofertas h3 { font-size:21px; margin:16px 0 8px; }
.ac-sin-ofertas p  { color:var(--ac-muted); font-size:14.5px; margin:0 0 24px; }

/* â”€â”€ PANEL TABS â”€â”€ */
.ac-panel-tabs { display:flex; border-bottom:2px solid var(--ac-border); margin-bottom:28px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; gap:2px; }
.ac-panel-tabs::-webkit-scrollbar { display:none; }
.ac-tab { padding:11px 20px; font-size:12.5px; font-weight:700; font-family:var(--ac-font); color:var(--ac-muted); border:none; background:transparent; cursor:pointer; text-transform:uppercase; letter-spacing:.06em; border-bottom:2.5px solid transparent; margin-bottom:-2px; transition:color var(--ac-transition), background var(--ac-transition), border-color var(--ac-transition); white-space:nowrap; flex-shrink:0; border-radius:var(--ac-radius) var(--ac-radius) 0 0; }
.ac-tab:hover  { color:var(--ac-black); background:var(--ac-yellow-lt); }
.ac-tab.active { color:var(--ac-black); border-bottom-color:var(--ac-yellow-dk); background:var(--ac-yellow-lt); }

/* â”€â”€ PANEL BOX â”€â”€ */
.ac-panel-box { background:var(--ac-white); border:1px solid var(--ac-border); border-radius:var(--ac-radius-lg); padding:22px 26px; margin-bottom:18px; box-shadow:var(--ac-shadow-xs); }
.ac-panel-box h3 { font-size:16px; margin:0 0 16px; padding-bottom:10px; border-bottom:2.5px solid var(--ac-yellow); font-family:var(--ac-font-display); font-weight:800; color:var(--ac-black); }

/* â”€â”€ TABLA DATOS PERFIL â”€â”€ */
.ac-datos-tabla { width:100%; border-collapse:collapse; font-size:13.5px; }
.ac-datos-tabla tr { border-bottom:1px solid var(--ac-bg-dark); }
.ac-datos-tabla tr:last-child { border-bottom:none; }
.ac-datos-tabla td { padding:10px 4px; vertical-align:top; line-height:1.5; }
.ac-datos-tabla td:first-child { width:130px; color:var(--ac-muted); text-transform:uppercase; font-size:10.5px; font-weight:700; letter-spacing:.05em; padding-right:16px; white-space:nowrap; }

/* â”€â”€ PANEL HEADER candidato â”€â”€ */
.ac-panel-header {
    background:linear-gradient(135deg, var(--ac-black) 0%, #1a2035 100%);
    border-radius:var(--ac-radius-lg);
    padding:28px 32px;
    margin-bottom:28px;
    display:flex; align-items:center; gap:20px;
    position:relative; overflow:hidden; flex-wrap:wrap;
    box-shadow:var(--ac-shadow);
}
.ac-panel-header::after { content:''; position:absolute; right:-30px; top:-30px; width:150px; height:150px; border:24px solid var(--ac-yellow); border-radius:50%; opacity:.10; pointer-events:none; }
.ac-panel-header::before { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ac-yellow) 0%,var(--ac-yellow-dk) 100%); }
.ac-panel-header-avatar { width:62px; height:62px; background:var(--ac-yellow); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; flex-shrink:0; font-family:var(--ac-font-display); font-weight:900; color:var(--ac-black); box-shadow:0 0 0 3px rgba(245,200,0,.3); }
.ac-panel-header h2 { color:var(--ac-white); margin:0 0 4px; font-size:clamp(17px,3vw,22px); }
.ac-panel-header p  { color:rgba(255,255,255,.55); margin:0; font-size:13.5px; }
#ac-btn-logout { position:relative; z-index:1; margin-left:auto; }

/* â”€â”€ ESTADO BADGE â”€â”€ */
.ac-estado-badge { display:inline-flex; align-items:center; gap:7px; padding:4px 13px; border-radius:20px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-top:8px; background:rgba(245,200,0,.15); color:var(--ac-yellow); border:1px solid rgba(245,200,0,.28); }
.ac-estado-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; display:inline-block; background:#888; }
.estado-activo     .ac-estado-dot { background:#16a34a; }
.estado-en_proceso .ac-estado-dot { background:#d97706; }
.estado-colocado   .ac-estado-dot { background:#1d4ed8; }
.estado-inactivo   .ac-estado-dot { background:#dc2626; }

/* â”€â”€ CANDIDATURAS en perfil â”€â”€ */
.ac-cands-lista { display:flex; flex-direction:column; gap:0; }
.ac-cand-item { display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--ac-bg-dark); font-size:14px; flex-wrap:wrap; }
.ac-cand-item:last-child { border-bottom:none; }
.ac-cand-estado { padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; flex-shrink:0; }
.estado-enviada         { background:var(--ac-yellow-lt); color:#7a5800; }
.estado-revisada        { background:#f0fdf4; color:#15803d; }
.estado-preseleccionada { background:#dbeafe; color:#1e40af; }
.estado-derivada        { background:#ede9fe; color:#5b21b6; }
.estado-entrevista      { background:#fef3c7; color:#92400e; }
.estado-contratada      { background:var(--ac-success-lt); color:var(--ac-success); }
.estado-descartada      { background:var(--ac-danger-lt);  color:var(--ac-danger); }

/* â”€â”€ EMPRESA HEADER â”€â”€ */
.ac-empresa-header { background:linear-gradient(135deg,var(--ac-black) 0%,#1a2035 100%); border-radius:var(--ac-radius-lg); padding:24px 28px; margin-bottom:24px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; box-shadow:var(--ac-shadow); position:relative; overflow:hidden; }
.ac-empresa-header::before { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ac-yellow) 0%,var(--ac-yellow-dk) 100%); }
.ac-empresa-logo-big { width:58px; height:58px; background:var(--ac-yellow); border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:var(--ac-font-display); font-size:21px; font-weight:900; color:var(--ac-black); flex-shrink:0; box-shadow:0 0 0 3px rgba(245,200,0,.25); }
.ac-empresa-header h2 { color:var(--ac-white); margin:0 0 4px; font-size:21px; }
.ac-empresa-header p  { color:rgba(255,255,255,.55); margin:0; font-size:13px; }

/* â”€â”€ PERFIL GRID â”€â”€ */
.ac-perfil-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }

/* â”€â”€ MIS OFERTAS â”€â”€ */
.ac-mis-ofertas-list { display:flex; flex-direction:column; gap:10px; }
.ac-mi-oferta-item { border:1px solid var(--ac-border); border-radius:var(--ac-radius); padding:15px 20px; display:flex; align-items:center; gap:14px; transition:border-color var(--ac-transition), box-shadow var(--ac-transition); flex-wrap:wrap; box-shadow:var(--ac-shadow-xs); }
.ac-mi-oferta-item:hover { border-color:var(--ac-yellow-dk); box-shadow:var(--ac-shadow); }
.ac-mi-oferta-info  { flex:1; min-width:0; }
.ac-mi-oferta-titulo { font-weight:700; font-size:15px; color:var(--ac-black); margin:0 0 4px; }
.ac-mi-oferta-meta   { font-size:12px; color:var(--ac-muted); }
.ac-inscritos-panel  { background:var(--ac-bg); border:1px solid var(--ac-border); border-radius:var(--ac-radius); padding:16px; margin-top:12px; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RECURSOS â€” layout corregido
   BotÃ³n dentro de la card, no se sale
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ac-recursos-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
    gap:16px;
}
.ac-recurso-card {
    border:2px solid var(--ac-border);
    border-radius:var(--ac-radius-lg);
    padding:20px;
    display:flex;
    flex-direction:column;   /* â† columna, no fila */
    gap:8px;
    background:var(--ac-white);
    transition:border-color .18s, transform .18s;
    /* sin overflow:hidden para que el botÃ³n nunca se corte */
}
.ac-recurso-card:hover { border-color:var(--ac-yellow); transform:translateY(-2px); }
.ac-recurso-ico    { font-size:36px; line-height:1; }
.ac-recurso-nombre { font-family:var(--ac-font-display); font-weight:800; font-size:16px; margin:0; color:var(--ac-black); }
.ac-recurso-desc   { font-size:13px; color:var(--ac-muted); margin:0; line-height:1.5; flex:1; }
/* botÃ³n siempre abajo, ancho completo â€” estilos de hover en bloque de botones arriba */
.ac-recurso-card .ac-btn {
    width:100%;
    margin-top:8px;
    justify-content:center;
    transition: background .18s, color .18s, border-color .18s, transform .18s, box-shadow .18s, padding-right .18s;
}

/* â”€â”€ ESTADÃSTICAS â”€â”€ */
.ac-stats-wrap { display:flex; gap:12px; flex-wrap:wrap; }
.ac-stat-card { background:var(--ac-black); color:var(--ac-white); border-radius:var(--ac-radius-lg); padding:24px 28px; flex:1; min-width:130px; text-align:center; position:relative; overflow:hidden; box-shadow:var(--ac-shadow); }
.ac-stat-card::before { content:''; position:absolute; bottom:-16px; right:-16px; width:80px; height:80px; background:var(--ac-yellow); border-radius:50%; opacity:.1; }
.ac-stat-card::after  { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ac-yellow) 0%,var(--ac-yellow-dk) 100%); }
.ac-stat-num   { font-family:var(--ac-font-display); font-size:48px; font-weight:900; color:var(--ac-yellow); line-height:1; display:block; margin-bottom:6px; }
.ac-stat-label { font-size:12.5px; color:rgba(255,255,255,.65); font-weight:500; letter-spacing:.01em; }

/* â”€â”€ PUBLICAR OFERTA â”€â”€ */
.ac-publicar-header { background:linear-gradient(135deg,var(--ac-black) 0%,#1a2035 100%); border-radius:var(--ac-radius-lg); padding:26px 32px; margin-bottom:28px; border-left:5px solid var(--ac-yellow); box-shadow:var(--ac-shadow); }
.ac-publicar-header h2 { color:var(--ac-white); margin:0 0 6px; }
.ac-publicar-header p  { color:rgba(255,255,255,.6); margin:0; font-size:13.5px; }

/* â”€â”€ MODAL CANDIDATURA â”€â”€ */
#ac-modal-candidatura { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,.55); z-index:99999; display:flex; align-items:center; justify-content:center; padding:16px; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.ac-modal-box { background:var(--ac-white); border-radius:var(--ac-radius-lg); width:100%; max-width:560px; max-height:90vh; overflow-y:auto; box-shadow:var(--ac-shadow-xl); display:flex; flex-direction:column; border:1px solid var(--ac-border); }
.ac-modal-header { display:flex; align-items:flex-start; justify-content:space-between; padding:22px 24px 16px; border-bottom:2px solid rgba(255,255,255,.08); position:sticky; top:0; background:var(--ac-black); z-index:1; border-radius:calc(var(--ac-radius-lg) - 1px) calc(var(--ac-radius-lg) - 1px) 0 0; }
.ac-modal-header h3 { font-size:18px; font-weight:800; color:var(--ac-white); margin:4px 0 2px; font-family:var(--ac-font-display); }
.ac-modal-sub      { font-size:11px; color:var(--ac-yellow); margin:0; text-transform:uppercase; letter-spacing:.08em; font-weight:700; }
.ac-modal-empresa  { font-size:13px; color:rgba(255,255,255,.6); margin:0; }
.ac-modal-close { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:50%; width:34px; height:34px; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--ac-white); transition:background .15s; }
.ac-modal-close:hover { background:var(--ac-yellow); color:var(--ac-black); border-color:var(--ac-yellow); }
#ac-form-candidatura { padding:22px 24px 24px; flex:1; }
.ac-modal-step   { margin-bottom:22px; }
.ac-step-titulo  { font-size:12px; font-weight:700; color:var(--ac-black); margin:0 0 12px; padding-bottom:8px; border-bottom:2px solid var(--ac-yellow); text-transform:uppercase; letter-spacing:.06em; }
.ac-cv-opcion    { display:block; border:2px solid var(--ac-border); border-radius:var(--ac-radius); padding:12px 14px; margin-bottom:8px; cursor:pointer; transition:border-color .15s, background .15s; }
.ac-cv-opcion:hover { border-color:var(--ac-yellow-dk); background:var(--ac-yellow-lt); }
.ac-cv-opcion input[type="radio"] { display:none; }
.ac-cv-opcion-inner { display:flex; align-items:center; gap:12px; }
.ac-cv-opcion-ico   { font-size:22px; flex-shrink:0; }
.ac-cv-opcion-inner div { flex:1; }
.ac-cv-opcion-inner strong { display:block; font-size:14px; color:var(--ac-black); }
.ac-cv-opcion-inner small  { font-size:12px; color:var(--ac-muted); }
.ac-cv-check { color:var(--ac-yellow-dk); font-size:18px; font-weight:900; opacity:0; transition:opacity .15s; }
.ac-cv-opcion-selected { border-color:var(--ac-yellow-dk); background:var(--ac-yellow-lt); }
.ac-cv-opcion-selected .ac-cv-check { opacity:1; }
.ac-file-input { width:100%; padding:8px; border:2px dashed var(--ac-border); border-radius:var(--ac-radius); font-size:13px; background:var(--ac-bg); }
.ac-textarea-carta { width:100%; padding:10px 12px; border:2px solid var(--ac-border); border-radius:var(--ac-radius); font-size:14px; font-family:var(--ac-font); resize:vertical; min-height:100px; transition:border .2s; box-sizing:border-box; color:var(--ac-black); background:var(--ac-white); }
.ac-textarea-carta:focus { outline:none; border-color:var(--ac-yellow-dk); box-shadow:0 0 0 3px rgba(245,200,0,.22); }
.ac-modal-resumen { background:var(--ac-yellow-lt); border:1px solid var(--ac-yellow); border-radius:var(--ac-radius); padding:10px 14px; font-size:13px; color:var(--ac-black); margin-bottom:12px; font-weight:600; }
#ac-modal-msg { margin:0 24px 12px; padding:10px 14px; border-radius:var(--ac-radius); font-size:14px; font-weight:600; }

/* â”€â”€ FAQ â”€â”€ */
.ac-faq-wrap       { max-width:800px; margin:0 auto; }
.ac-faq-categoria  { margin-bottom:32px; }
.ac-faq-cat-titulo { font-size:20px; font-weight:900; margin-bottom:14px; padding-bottom:10px; border-bottom:2.5px solid var(--ac-yellow); font-family:var(--ac-font-display); }
.ac-faq-item       { border:1px solid var(--ac-border); border-radius:var(--ac-radius); margin-bottom:6px; overflow:hidden; box-shadow:var(--ac-shadow-xs); }
.ac-faq-pregunta   { width:100%; text-align:left; background:var(--ac-white); border:none; padding:15px 20px; font-size:14.5px; font-weight:600; color:var(--ac-black); cursor:pointer; display:flex; justify-content:space-between; align-items:center; transition:background var(--ac-transition); font-family:var(--ac-font); }
.ac-faq-pregunta:hover  { background:var(--ac-yellow-lt); }
.ac-faq-pregunta.abierta { background:var(--ac-yellow); color:var(--ac-black); }
.ac-faq-ico { font-size:20px; font-weight:400; flex-shrink:0; margin-left:12px; transition:transform .2s; }
.ac-faq-pregunta.abierta .ac-faq-ico { transform:rotate(45deg); }
.ac-faq-respuesta { display:none; padding:0 20px 18px; font-size:13.5px; color:var(--ac-muted); line-height:1.75; border-top:2px solid rgba(245,200,0,.4); background:var(--ac-yellow-lt); }
.ac-faq-respuesta p { margin-top:14px; }

/* â”€â”€ ENCUESTA â”€â”€ */
.ac-encuesta-bloque { background:var(--ac-bg); border:2px solid var(--ac-border); border-radius:var(--ac-radius); padding:18px 20px; margin-bottom:16px; }
.ac-encuesta-bloque label { display:block; margin-bottom:12px; color:var(--ac-black); font-weight:600; font-size:14px; }
.ac-estrellas { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.ac-estrella { background:none; border:none; font-size:32px; color:var(--ac-border); cursor:pointer; padding:0; transition:color .1s; line-height:1; }
.ac-estrella.activa,.ac-estrella:hover { color:var(--ac-yellow-dk); }
.ac-radio-btn { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; cursor:pointer; padding:10px 18px; border:2px solid var(--ac-border); border-radius:var(--ac-radius); transition:border-color .15s, background .15s; }

/* â”€â”€ PERFILES ANONIMIZADOS â”€â”€ */
.ac-perfiles-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:14px; }
.ac-perfil-card { background:var(--ac-white); border:1px solid var(--ac-border); border-radius:var(--ac-radius-lg); padding:20px; display:flex; flex-direction:column; gap:10px; transition:all var(--ac-transition); box-shadow:var(--ac-shadow-xs); }
.ac-perfil-card:hover { border-color:var(--ac-yellow); transform:translateY(-3px); box-shadow:var(--ac-shadow); }
.ac-perfil-avatar { font-size:32px; width:56px; height:56px; background:var(--ac-black); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.ac-perfil-info { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:14px; font-weight:700; }
.ac-perfil-sectores { display:flex; flex-wrap:wrap; gap:4px; }

/* â”€â”€ CITA OPCIONES â”€â”€ */
.ac-cita-opciones { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:20px; }
.ac-cita-opcion { border:2px solid var(--ac-border); border-radius:var(--ac-radius); padding:16px; cursor:pointer; text-align:center; transition:border-color .15s, background .15s; }
.ac-cita-opcion:has(input:checked) { border-color:var(--ac-yellow-dk); background:var(--ac-yellow-lt); }
.ac-cita-opcion-ico { font-size:28px; display:block; margin-bottom:6px; }
.ac-cita-opcion span { font-size:13px; font-weight:600; color:var(--ac-black); }
.ac-cita-opcion input { display:none; }

/* â”€â”€ RUTA USUARIO [ac_como_funciona] â”€â”€ */
.ac-ruta-wrap { display:flex; flex-direction:column; gap:0; margin-bottom:32px; }
.ac-ruta-paso { display:flex; gap:20px; align-items:flex-start; position:relative; }
.ac-ruta-num { width:50px; height:50px; border-radius:50%; background:var(--ac-black); color:var(--ac-yellow); font-family:var(--ac-font-display); font-size:20px; font-weight:900; display:flex; align-items:center; justify-content:center; flex-shrink:0; z-index:1; box-shadow:0 0 0 4px rgba(245,200,0,.15); }
.ac-ruta-linea { width:2px; background:linear-gradient(to bottom, var(--ac-yellow), rgba(245,200,0,.1)); position:absolute; left:24px; top:50px; bottom:-24px; }
.ac-ruta-linea-visible { display:block; }
.ac-ruta-contenido { background:var(--ac-white); border:1px solid var(--ac-border); border-radius:var(--ac-radius); padding:18px 22px; flex:1; margin-bottom:24px; transition:border-color var(--ac-transition), box-shadow var(--ac-transition); box-shadow:var(--ac-shadow-xs); }
.ac-ruta-contenido:hover { border-color:var(--ac-yellow); box-shadow:var(--ac-shadow), 3px 3px 0 var(--ac-yellow); }
.ac-ruta-contenido h3 { margin:0 0 6px; font-size:17px; font-family:var(--ac-font-display); font-weight:800; text-transform:uppercase; }
.ac-ruta-contenido p  { margin:0; font-size:13.5px; color:var(--ac-muted); line-height:1.65; }

/* â”€â”€ ANTI-RUMORES â”€â”€ */
.ac-antirumor-box { display:flex; gap:20px; align-items:flex-start; background:var(--ac-black); color:var(--ac-white); border-radius:var(--ac-radius); padding:22px 26px; margin-top:8px; flex-wrap:wrap; box-shadow:var(--ac-shadow); }
.ac-antirumor-ico { width:42px; height:42px; border-radius:50%; background:var(--ac-yellow); color:var(--ac-black); font-size:20px; font-weight:900; font-family:var(--ac-font-display); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ac-antirumor-box strong { font-size:15px; font-family:var(--ac-font-display); text-transform:uppercase; letter-spacing:.04em; }
.ac-antirumor-box p { margin:6px 0 0; font-size:13.5px; color:rgba(255,255,255,.65); line-height:1.65; }
.ac-antirumor-box p strong { color:var(--ac-yellow); font-family:inherit; text-transform:none; letter-spacing:0; font-size:13.5px; }

/* â”€â”€ GUÃA DE USO â”€â”€ */
.ac-guia-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   BOTONES SOBRE FONDO OSCURO
   Dentro de bloques negros: blanco por defecto, amarillo en hover
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ac-login-aviso .ac-btn-outline,
.ac-panel-header .ac-btn-outline,
.ac-empresa-header .ac-btn-outline,
.ac-publicar-header .ac-btn-outline,
.ac-registro-cabecera .ac-btn-outline {
    color: var(--ac-white);
    border-color: var(--ac-white);
    background: transparent;
}
.ac-login-aviso .ac-btn-outline:hover,
.ac-panel-header .ac-btn-outline:hover,
.ac-empresa-header .ac-btn-outline:hover,
.ac-publicar-header .ac-btn-outline:hover,
.ac-registro-cabecera .ac-btn-outline:hover {
    background: var(--ac-yellow-dk);
    border-color: var(--ac-yellow-dk);
    color: var(--ac-black);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(212,169,0,.4);
}
/* Vuelta explÃ­cita al estado original en fondo oscuro */
.ac-login-aviso .ac-btn-outline:not(:hover),
.ac-panel-header .ac-btn-outline:not(:hover),
.ac-empresa-header .ac-btn-outline:not(:hover),
.ac-publicar-header .ac-btn-outline:not(:hover),
.ac-registro-cabecera .ac-btn-outline:not(:hover) {
    background: transparent;
    color: var(--ac-white);
    border-color: var(--ac-white);
    transform: translateY(0);
    box-shadow: none;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE â€” TABLET 900px
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
@media (max-width:900px) {
    .ac-perfil-grid { grid-template-columns:1fr; }
    .ac-guia-grid   { grid-template-columns:1fr; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE â€” MÃ“VIL 768px
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
@media (max-width:768px) {
    .ac-portal { padding:0 4px; }
    .ac-form-grid { grid-template-columns:1fr; gap:0; }

    /* Login */
    .ac-login-box { padding:28px 20px; box-shadow:3px 3px 0 var(--ac-yellow); }

    /* Registro */
    .ac-registro-cabecera { padding:22px 20px; border-radius:var(--ac-radius) var(--ac-radius) 0 0; }
    .ac-registro-body     { padding:20px; }

    /* Panel header */
    .ac-panel-header { padding:22px 20px; flex-direction:column; align-items:flex-start; gap:12px; }
    .ac-panel-header::after { display:none; }
    #ac-btn-logout { margin-left:0; width:100%; justify-content:center; }

    /* Panel tabs â€” scroll horizontal suave */
    .ac-panel-tabs { gap:0; }
    .ac-tab { padding:10px 14px; font-size:11px; letter-spacing:.02em; }

    /* Panel box */
    .ac-panel-box { padding:18px 16px; }

    /* Tabla datos: apilar en mÃ³vil */
    .ac-datos-tabla td:first-child { width:auto; display:block; padding-bottom:2px; }
    .ac-datos-tabla td:last-child  { display:block; padding-top:0; padding-bottom:10px; }
    .ac-datos-tabla tr { border-bottom:1px solid var(--ac-bg-dark); }

    /* Ofertas */
    .ac-oferta-card { padding:16px; }
    .ac-oferta-head { gap:10px; }
    .ac-oferta-empresa-logo { width:40px; height:40px; font-size:14px; }
    .ac-oferta-titulo { font-size:17px; }
    .ac-ofertas-header { flex-direction:column; align-items:flex-start; }

    /* Recursos â€” 1 columna en mÃ³vil, botÃ³n siempre visible */
    .ac-recursos-grid { grid-template-columns:1fr; }
    .ac-recurso-card { flex-direction:column; }

    /* Empresa header */
    .ac-empresa-header { flex-direction:column; align-items:flex-start; gap:12px; }
    #ac-btn-logout { width:100%; justify-content:center; }

    /* Aviso login */
    .ac-login-aviso { flex-direction:column; gap:14px; padding:20px; }
    .ac-login-aviso-btns { flex-direction:column; width:100%; }
    .ac-login-aviso-btns .ac-btn { width:100%; justify-content:center; }

    /* EstadÃ­sticas */
    .ac-stats-wrap { flex-direction:column; }
    .ac-stat-num   { font-size:42px; }

    /* Modal */
    .ac-modal-box { max-height:95vh; }
    #ac-form-candidatura { padding:16px; }

    /* Citas */
    .ac-cita-opciones { grid-template-columns:1fr 1fr; }

    /* Ruta usuario */
    .ac-ruta-num { width:40px; height:40px; font-size:16px; }
    .ac-ruta-contenido { padding:14px 16px; }

    /* Anti rumores */
    .ac-antirumor-box { padding:18px 20px; gap:14px; }

    /* Perfiles */
    .ac-perfiles-grid { grid-template-columns:1fr; }

    /* Candidaturas */
    .ac-cand-item { flex-direction:column; align-items:flex-start; gap:8px; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE â€” MÃ“VIL PEQUEÃ‘O 480px
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
@media (max-width:480px) {
    .ac-portal h2 { font-size:20px; }
    .ac-portal h3 { font-size:16px; }
    .ac-btn       { font-size:13px; padding:9px 16px; }
    .ac-btn-grande { padding:12px 24px; font-size:15px; }

    .ac-tab { padding:9px 10px; font-size:10px; }

    .ac-login-box { padding:24px 16px; }
    .ac-registro-cabecera { padding:18px 16px; }
    .ac-registro-body     { padding:16px; }
    .ac-panel-box { padding:14px; }

    /* Tabla datos solo una columna */
    .ac-datos-tabla { font-size:13px; }

    /* Recursos: 1 col, botÃ³n 100% visible */
    .ac-recursos-grid { grid-template-columns:1fr; gap:12px; }

    /* Oferta card sin logo en el head en pantallas muy pequeÃ±as */
    .ac-oferta-empresa-logo { display:none; }

    /* Modal */
    .ac-modal-box { border-radius:var(--ac-radius); }
    .ac-modal-header { padding:16px; }
    .ac-modal-header h3 { font-size:16px; }

    /* Citas: 1 columna */
    .ac-cita-opciones { grid-template-columns:1fr; }

    .ac-stat-num { font-size:36px; }
    .ac-stat-card { padding:20px; }

    /* GuÃ­a uso */
    .ac-guia-grid { grid-template-columns:1fr; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   FOOTER GLOBAL DEL PORTAL
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ac-portal-footer {
    margin-top: 56px;
    padding: 28px 16px 16px;
    border-top: 1px solid var(--ac-border);
    font-size: 13px;
    background: var(--ac-bg);
    border-radius: 0 0 var(--ac-radius-lg) var(--ac-radius-lg);
}
.ac-portal-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}
.ac-portal-footer-links a {
    color: var(--ac-muted);
    text-decoration: none;
    font-weight: 600;
    font-size: 12.5px;
    padding: 4px 8px;
    border-radius: 6px;
    transition: color var(--ac-transition), background var(--ac-transition);
}
.ac-portal-footer-links a:hover {
    color: var(--ac-black);
    background: var(--ac-yellow-lt);
    text-decoration: none;
}
.ac-portal-footer-links span {
    color: var(--ac-black-20);
    font-weight: 400;
    font-size: 11px;
}
.ac-portal-footer-copy {
    text-align: center;
    font-size: 11.5px;
    color: var(--ac-muted);
    letter-spacing: .01em;
}
.ac-portal-footer-copy a {
    color: var(--ac-muted);
    font-weight: 600;
    text-decoration-color: var(--ac-yellow-dk);
}
/* â”€â”€ BotÃ³n "Volver a asocolvas.es" en el footer â”€â”€ */
@keyframes ac-btn-shine {
    0%   { left: -120%; }
    60%  { left: 130%; }
    100% { left: 130%; }
}
.ac-portal-footer-back {
    text-align: center;
    margin-top: 28px;
    padding-bottom: 10px;
}
.ac-footer-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Barlow Condensed', 'Barlow', sans-serif;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 13px 34px;
    border-radius: 10px;
    border: 1.5px solid #b8860b !important;
    background: linear-gradient(180deg, #FFD700 0%, #F5C800 45%, #DAA520 100%) !important;
    color: #111 !important;
    box-shadow:
        0 2px 0 #b8860b,
        0 4px 12px rgba(0,0,0,.25),
        0 8px 24px rgba(218,165,32,.35),
        inset 0 1px 0 rgba(255,255,255,.55) !important;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
    position: relative;
    overflow: hidden;
}
.ac-footer-back-btn::before {
    content: '';
    position: absolute;
    top: -10%;
    left: -120%;
    width: 55%;
    height: 120%;
    background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 50%, rgba(255,255,255,0) 100%);
    transform: skewX(-20deg);
    animation: ac-btn-shine 3.5s infinite;
    pointer-events: none;
}
.ac-footer-back-btn:hover {
    transform: scale(1.05) translateY(-1px) !important;
    box-shadow:
        0 2px 0 #b8860b,
        0 6px 20px rgba(0,0,0,.3),
        0 12px 36px rgba(218,165,32,.55),
        inset 0 1px 0 rgba(255,255,255,.65) !important;
    filter: brightness(1.06);
    text-decoration: none !important;
    color: #111 !important;
}
.ac-footer-back-btn:not(:hover) {
    transform: scale(1) translateY(0);
}
/* â”€â”€ Cabecera de la pantalla de inicio â”€â”€ */
.ac-inicio-header {
    text-align: center;
    margin-bottom: 24px;
}

/* â”€â”€ FOOTER del login â”€â”€ */
.ac-login-footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 8px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--ac-border);
    font-size: 11.5px;
}
.ac-login-footer a {
    color: var(--ac-muted);
    text-decoration: none;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 4px;
    transition: color var(--ac-transition), background var(--ac-transition);
}
.ac-login-footer a:hover { color: var(--ac-black); background: var(--ac-yellow-lt); }
.ac-login-footer-sep { color: var(--ac-black-20); font-size: 11px; }

@media (max-width: 480px) {
    .ac-portal-footer-links { flex-direction: column; align-items: center; gap: 8px; }
    .ac-portal-footer-links span { display: none; }
    .ac-login-footer { flex-direction: column; align-items: center; gap: 8px; }
    .ac-login-footer-sep { display: none; }
}

/* â”€â”€ AVATAR FLOTANTE PERSISTENTE â”€â”€ */
.ac-floating-avatar {
    position: fixed;
    top: 70px;
    right: 60px;
    width: 48px;
    height: 48px;
    background: var(--ac-yellow);
    color: var(--ac-black);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ac-font-display);
    font-size: 18px;
    font-weight: 900;
    text-decoration: none;
    box-shadow: var(--ac-shadow);
    z-index: 999999;
    border: 2px solid var(--ac-black);
    transition: transform .2s, box-shadow .2s, background .2s;
}
.ac-floating-avatar:hover {
    background: var(--ac-yellow-dk);
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(245,200,0,.4);
    color: var(--ac-black);
}

@media (max-width: 768px) {
    .ac-floating-avatar {
        top: 10px;
        right: 10px;
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
}

/* â”€â”€ Links de email y contacto dentro de paneles blancos â”€â”€ */
.ac-link-email,
.ac-panel-box a:not(.ac-btn),
.ac-registro-body a:not(.ac-btn) {
    color: var(--ac-blue);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(37,99,235,.3);
    text-underline-offset: 2px;
    transition: color var(--ac-transition), text-decoration-color var(--ac-transition);
}
.ac-link-email:hover,
.ac-panel-box a:not(.ac-btn):hover,
.ac-registro-body a:not(.ac-btn):hover {
    color: #1d4ed8;
    text-decoration-color: #1d4ed8;
}
.ac-portal-footer a {
    text-decoration: none;
    transition: color var(--ac-transition), background var(--ac-transition);
}
.ac-portal-footer a:hover { color: var(--ac-black); }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PANEL TÃ‰CNICO FRONTEND
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ac-tec-wrap { font-family:var(--ac-font); max-width:1200px; margin:0 auto; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   TABLA â†’ TARJETAS en mÃ³vil (card-table)
   Requiere data-label en cada <td>
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
@media (max-width: 700px) {
    /* Ocultar encabezados de tabla */
    .ac-tec-table thead { display: none; }

    /* Cada fila se convierte en una tarjeta */
    .ac-tec-table tbody tr {
        display: block;
        background: #fff;
        border: 1px solid #e0e0e0;
        border-radius: 10px;
        margin-bottom: 12px;
        padding: 4px 0;
        box-shadow: 0 1px 4px rgba(0,0,0,.06);
    }
    .ac-tec-table tbody tr:hover td { background: transparent; }

    /* Fila de ediciÃ³n expandible: vuelve a tabla */
    .ac-tec-table tbody tr[id^="emp-edit-"],
    .ac-tec-table tbody tr[id^="of-edit-"] {
        display: block;
        border-radius: 0 0 10px 10px;
        border-top: none;
        padding: 0;
    }

    /* Cada celda muestra su etiqueta como prefijo */
    .ac-tec-table tbody td {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        padding: 9px 14px;
        border-bottom: 1px solid #f5f5f5;
        font-size: 13px;
        white-space: normal !important;
    }
    .ac-tec-table tbody td:last-child { border-bottom: none; }

    /* Etiqueta izquierda generada por data-label */
    .ac-tec-table tbody td::before {
        content: attr(data-label);
        flex-shrink: 0;
        width: 90px;
        min-width: 90px;
        font-size: 10px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .05em;
        color: #888;
        padding-top: 2px;
    }

    /* Celda de "colspan" (vacÃ­o / sin resultados): sin etiqueta, centrada */
    .ac-tec-table tbody td[colspan] {
        display: block;
        text-align: center;
    }
    .ac-tec-table tbody td[colspan]::before { display: none; }

    /* Select de estado: ancho completo dentro de la tarjeta */
    .ac-tec-table .ac-tec-select-inline { width: 100%; box-sizing: border-box; }

    /* Formularios inline dentro de tarjetas */
    .ac-tec-table .ac-tec-inline-form { width: 100%; }
    .ac-tec-table td[data-label="Acciones"],
    .ac-tec-table td[data-label="Eliminar"] { flex-wrap: wrap; gap: 6px; }
    .ac-tec-table td[data-label="Acciones"] > *,
    .ac-tec-table td[data-label="Eliminar"] > * { flex-shrink: 0; }

    /* Formulario de cambiar rol: columna en mÃ³vil */
    .ac-tec-table td[data-label="Cambiar rol"] > form { flex-direction: column; align-items: stretch; width: 100%; }
    .ac-tec-table td[data-label="Cambiar rol"] .ac-tec-select-inline { width: 100%; }
    .ac-tec-table td[data-label="Cambiar rol"] .ac-tec-pill-btn { width: 100%; justify-content: center; }

    /* La tabla interno NO se ve en tabla en mÃ³vil â€” contenido expandible full-width */
    .ac-tec-table tbody tr[id^="emp-edit-"] td,
    .ac-tec-table tbody tr[id^="of-edit-"] td {
        display: block;
        padding: 0;
    }
    .ac-tec-table tbody tr[id^="emp-edit-"] td::before,
    .ac-tec-table tbody tr[id^="of-edit-"] td::before { display: none; }
}
/* Header */
.ac-tec-header { background:#111827; border-radius:12px 12px 0 0; padding:18px 28px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:0; }
.ac-tec-brand { display:flex; align-items:center; gap:14px; }
.ac-tec-logo-box { width:44px; height:44px; background:#F5C800; border-radius:8px; display:flex; align-items:center; justify-content:center; font-family:var(--ac-font-display); font-size:16px; font-weight:900; color:#111827; flex-shrink:0; }
.ac-tec-brand-title { color:#fff; font-family:var(--ac-font-display); font-size:18px; font-weight:900; letter-spacing:.02em; }
.ac-tec-brand-sub { color:rgba(255,255,255,.5); font-size:12px; }
.ac-tec-header-right { display:flex; align-items:center; gap:12px; }
.ac-tec-user-name { color:rgba(255,255,255,.7); font-size:13px; }

/* Nav */
.ac-tec-nav { display:flex; background:#1a1a1a; padding:0 16px; overflow-x:auto; scrollbar-width:none; gap:2px; }
.ac-tec-nav::-webkit-scrollbar { display:none; }
.ac-tec-nav-item { display:flex; align-items:center; gap:6px; padding:14px 18px; color:rgba(255,255,255,.55); font-size:13px; font-weight:600; text-decoration:none; border-bottom:3px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:color .15s, border-color .15s, background .15s; position:relative; flex-shrink:0; }
.ac-tec-nav-item:hover { color:#fff; background:rgba(255,255,255,.05); }
.ac-tec-nav-item.active { color:#F5C800; border-bottom-color:#F5C800; }
.ac-tec-badge-num { position:absolute; top:8px; right:6px; background:#dc2626; color:#fff; font-size:10px; font-weight:700; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; }

/* Body */
.ac-tec-body { background:#f5f5f5; border:1px solid #e0e0e0; border-top:none; border-radius:0 0 12px 12px; padding:28px; min-height:400px; }

/* Notices */
.ac-tec-notice { padding:12px 16px; border-radius:6px; margin-bottom:16px; font-weight:600; font-size:14px; }
.ac-tec-notice.ok  { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.ac-tec-notice.err { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }

/* Page title */
.ac-tec-page-title { font-family:var(--ac-font-display); font-size:24px; font-weight:900; color:#111827; margin:0 0 20px; letter-spacing:-.01em; }

/* Stats grid */
.ac-tec-stats-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; margin-bottom:24px; }
.ac-tec-stat-card { background:#fff; border-radius:10px; padding:20px 16px; text-align:center; border:1px solid #e0e0e0; text-decoration:none; display:block; transition:transform .15s, box-shadow .15s; }
.ac-tec-stat-card:hover { transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,.1); }
.ac-tec-stat-ico { font-size:24px; margin-bottom:8px; }
.ac-tec-stat-num { font-family:var(--ac-font-display); font-size:32px; font-weight:900; line-height:1; margin-bottom:4px; }
.ac-tec-stat-lbl { font-size:12px; color:#666; font-weight:600; }

/* Panels grid */
.ac-tec-panels-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:16px; }
.ac-tec-panel { background:#fff; border-radius:10px; border:1px solid #e0e0e0; overflow:hidden; }
.ac-tec-panel-title { background:#111827; color:#F5C800; font-family:var(--ac-font-display); font-weight:800; font-size:14px; padding:12px 16px; letter-spacing:.04em; text-transform:uppercase; }
.ac-tec-panel-row { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid #f0f0f0; gap:12px; flex-wrap:wrap; }
.ac-tec-panel-row:last-child { border-bottom:none; }
.ac-tec-panel-row > div { flex:1; min-width:0; }
.ac-tec-panel-row strong { display:block; font-size:13px; color:#111827; }
.ac-tec-panel-row small { font-size:11px; color:#888; }

/* Alert box */
.ac-tec-alert-box { background:#fef9c3; border:1px solid #fde047; border-left:4px solid #d97706; border-radius:6px; padding:12px 16px; margin-bottom:16px; font-size:13px; color:#713f12; }

/* Filtros */
.ac-tec-filtros { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; align-items:center; }
.ac-tec-filtro-pill { padding:6px 14px; border-radius:20px; font-size:12px; font-weight:600; color:#555; background:#fff; border:1px solid #ddd; text-decoration:none; transition:all .15s; white-space:nowrap; }
.ac-tec-filtro-pill:hover, .ac-tec-filtro-pill.active { background:#111827; color:#F5C800; border-color:#111827; }
.ac-tec-search { padding:7px 12px; border:1px solid #ddd; border-radius:6px; font-size:13px; font-family:var(--ac-font); outline:none; transition:border-color .15s; }
.ac-tec-search:focus { border-color:#F5C800; }

/* Pill buttons */
.ac-tec-pill-btn { display:inline-flex; align-items:center; padding:5px 12px; border-radius:6px; font-size:12px; font-weight:700; text-decoration:none; border:1px solid #ddd; background:#fff; color:#333; cursor:pointer; transition:all .15s; white-space:nowrap; }
.ac-tec-pill-btn:hover { background:#111827; color:#F5C800; border-color:#111827; }
.ac-tec-pill-btn.ok { background:#16a34a; color:#fff; border-color:#16a34a; }
.ac-tec-pill-btn.ok:hover { background:#15803d; border-color:#15803d; }

/* Table */
.ac-tec-table-wrap { overflow-x:auto; border-radius:10px; border:1px solid #e0e0e0; }
.ac-tec-table { width:100%; border-collapse:collapse; font-size:13px; background:#fff; }
.ac-tec-table thead th { background:#111827; color:#F5C800; padding:12px 14px; text-align:left; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.ac-tec-table tbody td { padding:11px 14px; border-bottom:1px solid #f0f0f0; vertical-align:middle; }
.ac-tec-table tbody tr:last-child td { border-bottom:none; }
.ac-tec-table tbody tr:hover td { background:#fafafa; }
.ac-tec-td-sm { font-size:12px; color:#555; }
.ac-tec-empty { text-align:center; padding:40px; color:#aaa; font-style:italic; }

/* Status badges */
.ac-tec-status-badge { display:inline-flex; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; background:#f0f0f0; color:#555; }

/* Select inline */
.ac-tec-select-inline { padding:5px 8px; border:1px solid #ddd; border-radius:6px; font-size:12px; font-family:var(--ac-font); background:#fff; cursor:pointer; }

/* Ficha grid */
.ac-tec-ficha-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ac-tec-dato { display:flex; padding:8px 16px; border-bottom:1px solid #f0f0f0; font-size:13px; align-items:flex-start; gap:8px; }
.ac-tec-dato-lbl { width:130px; flex-shrink:0; color:#888; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding-top:1px; }
.ac-tec-text-block { background:#f9f9f9; border-radius:6px; padding:10px 14px; font-size:13px; color:#444; line-height:1.6; white-space:pre-wrap; }

/* Form */
.ac-tec-form { display:flex; flex-direction:column; gap:10px; padding:16px; }
.ac-tec-form label { font-size:12px; font-weight:700; color:#555; text-transform:uppercase; letter-spacing:.04em; }
.ac-tec-form input[type="text"],
.ac-tec-form input[type="email"],
.ac-tec-form input[type="password"],
.ac-tec-form select,
.ac-tec-form textarea { padding:9px 12px; border:1px solid #ddd; border-radius:6px; font-size:13px; font-family:var(--ac-font); width:100%; box-sizing:border-box; }
.ac-tec-form input:focus,.ac-tec-form select:focus,.ac-tec-form textarea:focus { outline:none; border-color:#F5C800; }
.ac-tec-submit-btn { padding:11px 20px; background:#111827; color:#F5C800; border:none; border-radius:6px; font-size:14px; font-weight:700; font-family:var(--ac-font); cursor:pointer; transition:background .15s; letter-spacing:.02em; }
.ac-tec-submit-btn:hover { background:#1a1a1a; }

/* Inline form */
.ac-tec-inline-form { display:flex; flex-direction:column; gap:4px; }

/* Cita card */
.ac-tec-cita-card { background:#fff; border:1px solid #e0e0e0; border-radius:10px; padding:16px 20px; margin-bottom:12px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.ac-tec-cita-info { display:flex; flex-direction:column; gap:2px; flex:1; min-width:200px; }
.ac-tec-cita-info strong { font-size:14px; color:#111827; }
.ac-tec-cita-info span { font-size:12px; color:#666; }
.ac-tec-cita-form { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ac-tec-input-sm { padding:6px 10px; border:1px solid #ddd; border-radius:6px; font-size:12px; }
.ac-tec-type-badge { background:#F5C800; color:#111827; padding:2px 10px; border-radius:20px; font-size:11px; font-weight:700; display:inline-block; }

/* Responsive */
@media (max-width:768px) {
    .ac-tec-body { padding:16px; }
    .ac-tec-ficha-grid { grid-template-columns:1fr; }
    .ac-tec-stats-grid { grid-template-columns:repeat(2,1fr); }
    .ac-tec-nav-item { padding:12px 12px; font-size:12px; }
    .ac-tec-header { padding:14px 16px; }
    .ac-tec-panels-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
    .ac-tec-stats-grid { grid-template-columns:1fr 1fr; }
}

/* Config section */
.ac-tec-cfg-label { display:block; font-size:12px; font-weight:700; color:#555; text-transform:uppercase; letter-spacing:.04em; margin-bottom:5px; }
.ac-tec-cfg-input { width:100%; padding:9px 12px; border:1px solid #ddd; border-radius:6px; font-size:13px; font-family:var(--ac-font); box-sizing:border-box; }
.ac-tec-cfg-input:focus { outline:none; border-color:#F5C800; }
.ac-tec-config-form { max-width:900px; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   INFOJOBS-STYLE BOLSA DE EMPLEO
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Top Navbar â”€â”€ */
.ac-ij-navbar { background:#fff; border-bottom:1px solid #e0e0e0; padding:0 24px; position:sticky; top:0; z-index:100; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.ac-ij-navbar-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:90px; gap:16px; }
.ac-ij-navbar-left { display:flex; align-items:center; gap:28px; }
.ac-ij-navbar-logo { text-decoration:none; display:flex; align-items:center; }
.ac-ij-navbar .ac-ij-navbar-logo .ac-ij-navbar-logo-img,
.ac-ij-navbar .ac-ij-navbar-logo-img,
.ac-portal .ac-ij-navbar-logo-img { height:80px !important; width:auto !important; max-width:none !important; max-height:80px !important; min-height:unset !important; object-fit:contain; display:block !important; filter:none !important; -webkit-filter:none !important; mix-blend-mode:normal !important; opacity:1 !important; }
.ac-ij-navbar-links { display:flex; align-items:center; gap:4px; }
.ac-ij-nav-link { font-size:14px; font-weight:500; color:#555; text-decoration:none; padding:6px 14px; border-radius:6px; transition:all .15s; font-family:var(--ac-font); }
.ac-ij-nav-link:hover { background:#f0f0f0; color:#111827; }
.ac-ij-nav-link.ac-ij-nav-active { color:#111827; font-weight:700; }
.ac-ij-navbar-right { display:flex; align-items:center; gap:10px; }
.ac-ij-access-btn { padding:8px 18px; border-radius:6px; font-size:12px; font-weight:800; text-decoration:none; font-family:var(--ac-font-display); letter-spacing:.06em; transition:all .15s; white-space:nowrap; }
.ac-ij-access-empresa { background:#fff; color:#111827; border:2px solid #111827; }
.ac-ij-access-empresa:hover { background:#111827; color:#fff; }
.ac-ij-access-candidato { background:#d6336c; color:#fff; border:2px solid #d6336c; }
.ac-ij-access-candidato:hover { background:#c2255c; border-color:#c2255c; }
.ac-ij-navbar-user { display:flex; align-items:center; gap:8px; text-decoration:none; color:#111827; font-size:14px; font-weight:600; padding:6px 12px; border-radius:8px; transition:background .15s; }
.ac-ij-navbar-user:hover { background:#f5f5f5; }
.ac-ij-navbar-avatar { width:32px; height:32px; background:linear-gradient(135deg,#111827,#2a2a3a); color:#F5C800; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:900; font-family:var(--ac-font-display); flex-shrink:0; }
.ac-ij-navbar-uname { max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Hero search */
.ac-ij-portal { max-width:none; padding:0; }
.ac-ij-hero { background:linear-gradient(135deg, #111827 0%, #1a1a2e 100%); padding:18px 24px; position:relative; overflow:hidden; color:#fff; min-height:160px; }
.ac-ij-hero * { color:inherit; }
.ac-ij-hero::before { content:''; position:absolute; top:-10px; right:-10px; width:160px; height:160px; background:radial-gradient(circle, rgba(245,200,0,.08) 0%, transparent 70%); pointer-events:none; }
.ac-ij-hero::after { content:''; position:absolute; bottom:-10px; left:-10px; width:100px; height:100px; background:radial-gradient(circle, rgba(22,125,183,.05) 0%, transparent 70%); pointer-events:none; }
.ac-ij-hero-inner { max-width:1100px; margin:0 auto; position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; }
.ac-ij-hero-title { font-family:var(--ac-font-display); font-size:clamp(26px,4.2vw,36px); font-weight:900; color:#fff; margin:0 0 14px; letter-spacing:-.02em; line-height:1.08; max-width:720px; text-align:center; }

/* Searchbar */
.ac-ij-searchbar-wrap { margin-bottom:10px; width:100%; max-width:880px; margin-left:auto; margin-right:auto; display:flex; flex-direction:column; align-items:center; }
.ac-ij-searchbar { display:flex; align-items:center; background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 6px 36px rgba(0,0,0,.18); border:2px solid rgba(255,255,255,.03); transition:box-shadow .2s, border-color .2s; }
.ac-ij-searchbar:focus-within { border-color:rgba(245,200,0,.45); box-shadow:0 10px 40px rgba(0,0,0,.35); }
.ac-ij-sb-field { display:flex; flex-direction:column; flex:1; padding:8px 20px; gap:2px; min-width:0; justify-content:center; align-items:stretch; }
.ac-ij-sb-field-loc { flex:.7; }
.ac-ij-sb-label { font-size:12px; font-weight:700; color:#6b6b6b; letter-spacing:.02em; }
.ac-ij-sb-input { flex:1; border:none; outline:none; font-size:15px; font-family:var(--ac-font); color:#111; background:transparent; padding:12px 10px; min-width:0; height:48px; box-sizing:border-box; }
.ac-ij-sb-input::placeholder { color:#b0b0b0; }
.ac-ij-sb-divider { width:1px; background:#f0f0f0; margin:12px 0; flex-shrink:0; }
.ac-ij-sb-btn { background:#F5C800; color:#111827; border:none; width:44px; height:44px; padding:0; display:inline-flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; font-family:var(--ac-font-display); cursor:pointer; transition:background .12s, transform .08s; flex-shrink:0; letter-spacing:.02em; border-radius:50%; box-shadow:0 4px 12px rgba(245,200,0,.28); }
.ac-ij-sb-btn:hover { background:#e0b400; transform:translateY(-2px); box-shadow:0 8px 20px rgba(245,200,0,.36); }
.ac-ij-sb-btn svg { display:block; color:#111827; }
.ac-ij-sb-btn:active { transform:scale(.97); }

/* Company search - label above input and inline button */
.ac-ij-company-label { display:block; font-size:13px; font-weight:800; color:var(--ac-white); margin-bottom:10px; text-align:center; width:100%; }
.ac-ij-company-row { display:flex; gap:12px; align-items:center; justify-content:center; width:100%; max-width:640px; }
.ac-ij-company-input { padding:10px 14px; border-radius:8px; border:2px solid var(--ac-border); background:var(--ac-white); color:var(--ac-black); font-size:15px; min-width:320px; height:48px; box-sizing:border-box; }

.ac-ij-company-search { margin-top:12px; width:100%; display:flex; flex-direction:column; align-items:center; }
.ac-ij-company-input::placeholder { color:#9aa0a6; }
.ac-ij-company-btn { width:44px; height:44px; border-radius:50%; }

/* Hero sub */
.ac-ij-hero-sub { display:flex; align-items:center; gap:14px; font-size:13px; color:rgba(255,255,255,.75); flex-wrap:wrap; justify-content:center; }
.ac-ij-hero-count { background:rgba(245,200,0,.12); padding:5px 14px; border-radius:20px; border:1px solid rgba(245,200,0,.22); color:#fff; }
.ac-ij-hero-count strong { color:#F5C800; font-weight:800; }
.ac-ij-clear { color:#167DB7; text-decoration:none; border:1px solid rgba(22,125,183,.25); padding:4px 12px; border-radius:20px; font-size:12px; transition:all .15s; }
.ac-ij-clear:hover { background:rgba(22,125,183,.08); }
.ac-ij-pub-btn { margin-left:auto; color:#fff; background:#167DB7; text-decoration:none; font-size:13px; font-weight:800; padding:7px 18px; border-radius:8px; transition:all .15s; }
.ac-ij-pub-btn:hover { background:#1268a0; transform:translateY(-1px); }

/* Active filters pills */
.ac-ij-active-filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.ac-ij-active-pill { background:#fff; color:#167DB7; font-size:12px; font-weight:600; padding:4px 12px; border-radius:20px; border:1px solid rgba(22,125,183,.25); box-shadow:0 1px 3px rgba(0,0,0,.06); }

/* Layout */
.ac-ij-layout { display:grid; grid-template-columns:270px 1fr; gap:24px; max-width:1100px; margin:0 auto; padding:28px 16px; align-items:start; }

/* Sidebar */
.ac-ij-sidebar { background:#fff; border:1px solid #e8e8e8; border-radius:12px; padding:0; position:sticky; top:20px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.04); }
.ac-ij-fgroup { padding:18px 20px; border-bottom:1px solid #f0f0f0; }
.ac-ij-fgroup:last-child { border-bottom:none; }
.ac-ij-ftitle { font-size:12px; font-weight:800; color:#111827; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; display:flex; align-items:center; gap:6px; }

/* Radio (fecha) */
.ac-ij-radio { display:flex; align-items:center; gap:9px; padding:5px 0; cursor:pointer; font-size:14px; color:#333; }
.ac-ij-radio input[type=radio] { display:none; }
.ac-ij-radio-dot { width:16px; height:16px; border:2px solid #ccc; border-radius:50%; flex-shrink:0; transition:all .15s; position:relative; }
.ac-ij-radio.on .ac-ij-radio-dot,
.ac-ij-radio input:checked ~ .ac-ij-radio-dot { border-color:#167DB7; background:#167DB7; box-shadow:inset 0 0 0 3px #fff; }
.ac-ij-radio:hover .ac-ij-radio-dot { border-color:#167DB7; }
.ac-ij-flabel { flex:1; }
.ac-ij-badge-new { background:#e8f4fd; color:#167DB7; font-size:10px; font-weight:700; padding:1px 7px; border-radius:10px; margin-left:6px; font-style:normal; text-transform:uppercase; letter-spacing:.04em; }

/* Checkboxes (sector, jornada, etc.) */
.ac-ij-check { display:flex; align-items:center; gap:9px; padding:5px 0; cursor:pointer; font-size:14px; color:#333; }
.ac-ij-check input { display:none; }
.ac-ij-chkbox { width:16px; height:16px; border:2px solid #ccc; border-radius:3px; flex-shrink:0; transition:all .15s; display:flex; align-items:center; justify-content:center; }
.ac-ij-check.on .ac-ij-chkbox,
.ac-ij-chkbox.on { border-color:#167DB7; background:#167DB7; }
.ac-ij-check.on .ac-ij-chkbox::after,
.ac-ij-chkbox.on::after { content:'âœ“'; color:#fff; font-size:10px; font-weight:900; }
.ac-ij-check:hover .ac-ij-chkbox { border-color:#167DB7; }
.ac-ij-fcount { color:#aaa; font-style:normal; font-size:12px; }
.ac-ij-fhide { display:none !important; }
.ac-ij-reset .ac-ij-flabel { color:#167DB7; font-style:italic; font-size:13px; }
.ac-ij-morebtn { background:none; border:none; color:#167DB7; font-size:13px; cursor:pointer; padding:4px 0; font-family:var(--ac-font); margin-top:4px; }
.ac-ij-morebtn:hover { text-decoration:underline; }

/* Results bar */
.ac-ij-main { min-width:0; }
.ac-ij-results-bar { font-size:14px; color:#555; margin-bottom:16px; display:flex; align-items:center; gap:12px; padding-bottom:12px; border-bottom:1px solid #eee; }
.ac-ij-results-bar strong { color:#111827; font-size:16px; }
.ac-ij-clear-sm { color:#167DB7; text-decoration:none; font-size:13px; }
.ac-ij-clear-sm:hover { text-decoration:underline; }

/* Cards */
.ac-ij-cards { display:flex; flex-direction:column; gap:0; background:#e8e8e8; border:1px solid #e8e8e8; border-radius:12px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.04); }
.ac-ij-card { background:#fff; display:flex; gap:16px; padding:22px 24px; transition:all .18s ease; position:relative; border-left:3px solid transparent; }
.ac-ij-card:hover { background:#f8fbff; border-left-color:#167DB7; }
.ac-ij-card:first-child { border-radius:12px 12px 0 0; }
.ac-ij-card:last-child { border-radius:0 0 12px 12px; }
.ac-ij-card.closed { opacity:.55; }
.ac-ij-card.applied { background:#f0fdf4; border-left-color:#16a34a; }
.ac-ij-card.applied:hover { background:#e8fdf0; }
.ac-ij-card.ac-ij-card-expanded { background:#f8fbff; border-left-color:#167DB7; box-shadow:inset 0 0 0 1px rgba(22,125,183,.15); }

/* Card logo */
.ac-ij-card-logo { width:52px; height:52px; background:linear-gradient(135deg, #111827 0%, #2a2a3a 100%); color:#F5C800; border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:var(--ac-font-display); font-size:16px; font-weight:900; flex-shrink:0; align-self:flex-start; box-shadow:0 2px 8px rgba(0,0,0,.1); }

/* Card content */
.ac-ij-card-content { flex:1; min-width:0; }
.ac-ij-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:6px; }
.ac-ij-card-left { flex:1; min-width:0; }
.ac-ij-card-title { font-size:16px; font-weight:700; color:#111827; margin:0 0 3px; line-height:1.3; }
.ac-ij-card:hover .ac-ij-card-title { color:#167DB7; }
.ac-ij-card-company { font-size:13px; color:#666; margin-bottom:8px; }
.ac-ij-card-pills { display:flex; flex-wrap:wrap; gap:6px; }
.ac-ij-pill { font-size:12px; color:#555; display:inline-flex; align-items:center; gap:4px; }
.ac-ij-pill-ico { font-size:11px; }
.ac-ij-pill + .ac-ij-pill::before { content:'Â·'; color:#ccc; margin-right:2px; }
.ac-ij-pill-salary { color:#16a34a; font-weight:600; }

/* Card right */
.ac-ij-card-right { display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0; }
.ac-ij-card-date { font-size:12px; color:#aaa; white-space:nowrap; }
.ac-ij-new-dot { background:#F5C800; color:#111827; font-size:11px; font-weight:800; padding:2px 8px; border-radius:20px; }

/* Apply button */
.ac-ij-apply-btn { background:linear-gradient(135deg, #F5C800 0%, #D4A900 100%); color:#111827; border:none; padding:10px 20px; border-radius:8px; font-size:13px; font-weight:800; cursor:pointer; transition:all .18s; font-family:var(--ac-font); text-decoration:none; display:inline-block; white-space:nowrap; box-shadow:0 2px 8px rgba(245,200,0,.25); }
.ac-ij-apply-btn:hover { background:linear-gradient(135deg, #D4A900 0%, #b89200 100%); transform:translateY(-1px); box-shadow:0 4px 14px rgba(245,200,0,.35); }
.ac-ij-apply-btn:active { transform:translateY(0); }
.ac-ij-apply-btn.applied { background:#dcfce7; color:#166534; cursor:default; box-shadow:none; }
.ac-ij-apply-btn.closed { background:#f0f0f0; color:#999; cursor:default; box-shadow:none; }

/* Description */
.ac-ij-card-desc { font-size:13px; color:#666; line-height:1.5; margin:8px 0 6px; }
.ac-ij-card-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.ac-ij-tag { background:#f0f4f8; color:#4a5568; font-size:11px; padding:3px 10px; border-radius:20px; font-weight:500; }

/* Empty state */
.ac-ij-empty { text-align:center; padding:60px 24px; background:#fff; border:1px solid #e8e8e8; border-radius:12px; box-shadow:0 2px 12px rgba(0,0,0,.04); }

/* CTA bar */
.ac-ij-cta-bar { background:linear-gradient(135deg, #111827 0%, #1a1a2e 100%); color:#fff; padding:24px 32px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-top:24px; border-radius:12px; max-width:1100px; margin:24px auto 0; position:relative; overflow:hidden; }
.ac-ij-cta-bar::before { content:''; position:absolute; top:-20px; right:-20px; width:120px; height:120px; background:radial-gradient(circle, rgba(245,200,0,.15) 0%, transparent 70%); pointer-events:none; }
.ac-ij-cta-text { position:relative; z-index:1; }
.ac-ij-cta-bar strong { display:block; font-size:17px; font-weight:800; font-family:var(--ac-font-display); margin-bottom:4px; }
.ac-ij-cta-bar span { font-size:13px; color:rgba(255,255,255,.6); }
.ac-ij-cta-btns { display:flex; gap:10px; flex-shrink:0; position:relative; z-index:1; }
.ac-ij-cta-btn { padding:10px 22px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; font-family:var(--ac-font); transition:all .15s; display:inline-block; }
.ac-ij-cta-login { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.3); }
.ac-ij-cta-login:hover { border-color:#fff; background:rgba(255,255,255,.08); }
.ac-ij-cta-register { background:#F5C800; color:#111827; border:2px solid #F5C800; font-weight:800; }
.ac-ij-cta-register:hover { background:#D4A900; border-color:#D4A900; transform:translateY(-1px); box-shadow:0 4px 14px rgba(245,200,0,.35); }

/* Value propositions bar */
.ac-ij-value-bar { display:flex; justify-content:center; gap:32px; max-width:1100px; margin:16px auto 0; padding:18px 16px; flex-wrap:wrap; }
.ac-ij-value-item { display:flex; align-items:center; gap:8px; font-size:13px; color:#666; font-weight:500; }
.ac-ij-value-ico { font-size:18px; }

/* Responsive */
@media (max-width:900px) {
    .ac-ij-navbar-inner { height:70px; }
    .ac-ij-navbar-links { display:none; }
    .ac-ij-navbar-uname { display:none; }
    .ac-ij-access-btn { padding:6px 12px; font-size:11px; }
    .ac-ij-layout { grid-template-columns:1fr; padding:16px; gap:16px; }
    .ac-ij-sidebar { position:static; }
    .ac-ij-hero { padding:24px 16px 20px; }
    .ac-ij-hero-title { font-size:24px; margin-bottom:20px; }
    .ac-ij-sb-divider { display:none; }
    .ac-ij-searchbar { flex-wrap:wrap; border-radius:10px; }
    /* Cada campo ocupa lÃ­nea propia */
    .ac-ij-sb-field { flex: none; width: 100%; padding:10px 14px; }
    .ac-ij-sb-field:first-child { border-bottom:1px solid #eee; }
    /* BotÃ³n principal: ancho completo */
    .ac-ij-sb-btn { width:100%; padding:14px; text-align:center; border-radius:8px; }
    /* BotÃ³n "Buscar empresa": NO hereda width:100%, se queda circular */
    .ac-ij-sb-btn.ac-ij-company-btn { width:44px; height:44px; border-radius:50%; padding:0; flex-shrink:0; }
    /* Input de empresa: anula el min-width:320px fijo */
    .ac-ij-company-input { min-width:0; flex:1; width:auto; }
    .ac-ij-cta-bar { flex-direction:column; text-align:center; padding:24px 20px; margin:16px auto 0; }
    .ac-ij-cta-btns { flex-direction:column; width:100%; }
    .ac-ij-cta-btn { text-align:center; }
    .ac-ij-value-bar { gap:16px; }
    .ac-ij-pub-btn { margin-left:0; }
}
@media (max-width:540px) {
    .ac-ij-navbar { padding:0 12px; }
    .ac-ij-logo-text, .ac-ij-logo-accent { font-size:18px; }
    .ac-ij-hero { padding:16px 12px 14px; }
    /* Buscar empresa: en pantallas muy pequeÃ±as se oculta para no saturar */
    .ac-ij-company-search { display:none; }
    .ac-ij-card { flex-direction:column; gap:10px; padding:16px; }
    .ac-ij-card-logo { width:40px; height:40px; font-size:13px; }
    .ac-ij-card-top { flex-direction:column; gap:8px; }
    .ac-ij-card-right { flex-direction:row; align-items:center; justify-content:space-between; width:100%; }
    .ac-ij-apply-btn { padding:8px 14px; font-size:12px; }
}

/* â”€â”€ Keyword input (sidebar) â”€â”€ */
.ac-ij-keyword-wrap { display:flex; gap:0; border:2px solid #ddd; border-radius:6px; overflow:hidden; }
.ac-ij-keyword-input { flex:1; border:none; outline:none; padding:8px 12px; font-size:13px; font-family:var(--ac-font); color:#111827; background:#fff; min-width:0; }
.ac-ij-keyword-input::placeholder { color:#bbb; }
.ac-ij-keyword-btn { background:#F5C800; color:#111827; border:none; padding:8px 14px; font-size:13px; font-weight:800; font-family:var(--ac-font-display); cursor:pointer; transition:background .15s; flex-shrink:0; }
.ac-ij-keyword-btn:hover { background:#D4A900; }

/* â”€â”€ Company search (small) â”€â”€ */
.ac-ij-company-search { display:flex; gap:8px; align-items:center; margin-top:12px; max-width:760px; margin-left:auto; margin-right:auto; }
.ac-ij-company-input { flex:1; padding:10px 14px; border-radius:8px; border:1px solid #e6e6e6; font-size:14px; }
/* .ac-ij-company-btn: heredado de ac-ij-sb-btn, sin overrides necesarios */

/* â”€â”€ Mobile filter toggle â”€â”€ */
.ac-ij-mobile-filter-btn { display:none; align-items:center; gap:8px; background:#fff; border:2px solid #e8e8e8; border-radius:8px; padding:10px 18px; font-size:14px; font-weight:700; font-family:var(--ac-font); color:#111827; cursor:pointer; width:100%; justify-content:center; margin-bottom:16px; transition:border-color .15s, background .15s; }
.ac-ij-mobile-filter-btn:hover { border-color:#F5C800; background:#fffde6; }
.ac-ij-mobile-filter-btn svg { flex-shrink:0; }
.ac-ij-filter-count { color:#dc2626; font-size:8px; }

@media (max-width:900px) {
    .ac-ij-mobile-filter-btn { display:flex; }
    .ac-ij-sidebar { display:none; }
    .ac-ij-sidebar.open { display:block; }
}

/* â”€â”€ Detail panel (expandible) â”€â”€ */
.ac-ij-detail-panel { border-top:2px solid #f0f0f0; margin-top:12px; }
.ac-ij-detail-inner { padding:16px 0 4px; }
.ac-ij-detail-section { margin-bottom:16px; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   FIX: Ajustes responsive y visibilidad del footer
   - Evita que decoraciones pseudo-element generen artefactos en mÃ³vil
   - Asegura visibilidad y wrapping del bloque de enlaces del portal
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ac-portal-footer { position: relative; z-index: 2; padding: 24px 12px; }
.ac-portal-footer-links { justify-content: center; word-break: break-word; }
.ac-portal-footer-links a { display: inline-block; padding: 6px 8px; }

@media (max-width: 480px) {
    /* Reducir decoraciones pesadas en pantallas pequeÃ±as */
    .ac-login-box { box-shadow: none !important; }
    .ac-panel-header::after,
    .ac-registro-cabecera::before,
    .ac-ij-hero::before,
    .ac-ij-hero::after { display: none !important; }

    /* Mejor comportamiento del bloque de enlaces en mÃ³vil */
    .ac-portal-footer-links { flex-direction: column; align-items: center; gap: 8px; }
    .ac-portal-footer-links span { display: none; }

    /* Evita que cajas negras con varias columnas rompan el layout */
    .ac-antirumor-box { align-items: center; }
}
.ac-ij-detail-section h4 { font-size:14px; font-weight:800; color:#111827; margin:0 0 8px; text-transform:uppercase; letter-spacing:.04em; font-family:var(--ac-font-display); }
.ac-ij-detail-section p { font-size:13px; color:#555; line-height:1.7; margin:0; white-space:pre-wrap; }
.ac-ij-detail-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:10px; margin-bottom:16px; }
.ac-ij-detail-item { background:#f8f9fa; border-radius:6px; padding:10px 14px; display:flex; flex-direction:column; gap:2px; }
.ac-ij-detail-label { font-size:11px; font-weight:700; color:#888; text-transform:uppercase; letter-spacing:.04em; }
.ac-ij-detail-item > span:last-child { font-size:14px; font-weight:600; color:#111827; }
.ac-ij-detail-actions { display:flex; gap:10px; flex-wrap:wrap; padding-top:8px; border-top:1px solid #f0f0f0; }
.ac-ij-card-title { transition:color .15s; }
.ac-ij-card-title:hover { color:#167DB7; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE â€” PANELES MOBILE (TÃ©cnico Â· Empresa Â· Candidato)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Clase auxiliar para grids 2-col que deben colapsar a 1-col en mÃ³vil */
/* .ac-tec-2col: colapsado a 1-col via @media (max-width:768px) */

/* â”€â”€ 768px: TABLET / MOBILE â”€â”€ */
@media (max-width: 768px) {
    /* â”€â”€ Panel TÃ©cnico: header apilado â”€â”€ */
    .ac-tec-header { flex-direction: column; align-items: stretch; }
    .ac-tec-header-right { width: 100%; justify-content: space-between; }
    .ac-tec-header-right #ac-btn-logout { width: auto; margin-left: 0; }

    /* â”€â”€ Panel TÃ©cnico: cita cards apiladas â”€â”€ */
    .ac-tec-cita-card { flex-direction: column; align-items: stretch; gap: 12px; }
    .ac-tec-cita-form { flex-direction: column; width: 100%; }
    .ac-tec-cita-form .ac-tec-select-inline,
    .ac-tec-cita-form .ac-tec-input-sm { width: 100%; box-sizing: border-box; }
    .ac-tec-cita-form .ac-tec-pill-btn { width: 100%; justify-content: center; }

    /* â”€â”€ Panel TÃ©cnico: grids 2-col â†’ 1-col â”€â”€ */
    .ac-tec-2col { grid-template-columns: 1fr !important; }

    /* â”€â”€ Panel TÃ©cnico: barra de filtros â”€â”€ */
    .ac-tec-filtros form { margin-left: 0 !important; width: 100%; }
    .ac-tec-filtros .ac-tec-search { width: 100%; flex: 1; }

    /* â”€â”€ Todos los paneles: botones de acciÃ³n apilados â”€â”€ */
    .ac-panel-header-actions { flex-direction: column; }
    .ac-panel-header-actions .ac-btn { width: 100%; flex: none; }

    /* â”€â”€ Panel Empresa: acciones apiladas â”€â”€ */
    .ac-empresa-header .ac-panel-header-actions { flex-direction: column; }
}

/* â”€â”€ 480px: MÃ“VIL â”€â”€ */
@media (max-width: 480px) {
    /* â”€â”€ Panel TÃ©cnico â”€â”€ */
    .ac-tec-header { padding: 12px; }
    .ac-tec-body { padding: 12px; }
    .ac-tec-page-title { font-size: 18px; }
    .ac-tec-stat-num { font-size: 24px; }
    .ac-tec-stat-card { padding: 14px 10px; }
    .ac-tec-brand-title { font-size: 15px; }
    .ac-tec-logo-box { width: 36px; height: 36px; font-size: 13px; }
    .ac-tec-stats-grid { gap: 8px; }
    .ac-tec-pill-btn { font-size: 11px; padding: 4px 8px; }
    .ac-tec-submit-btn { font-size: 13px; padding: 10px 16px; }
    .ac-tec-panel-title { font-size: 12px; padding: 10px 14px; }
    .ac-tec-panel-row strong { font-size: 12px; }
    .ac-tec-select-inline { font-size: 11px; }
    .ac-tec-filtro-pill { padding: 5px 10px; font-size: 11px; }
    .ac-tec-notice { font-size: 13px; padding: 10px 14px; }
    .ac-tec-alert-box { font-size: 12px; padding: 10px 14px; }
    .ac-tec-nav-item { padding: 10px 10px; font-size: 11px; }
    .ac-tec-user-name { font-size: 12px; }

    /* â”€â”€ Panel Empresa â”€â”€ */
    .ac-empresa-header { padding: 16px; }
    .ac-empresa-logo-big { width: 48px; height: 48px; font-size: 18px; }
    .ac-empresa-header h2 { font-size: 18px; }

    /* â”€â”€ Panel Candidato â”€â”€ */
    .ac-panel-header-avatar { width: 48px; height: 48px; font-size: 22px; }
}

/* â”€â”€ 360px: PANTALLA MUY PEQUEÃ‘A â”€â”€ */
@media (max-width: 360px) {
    .ac-tec-header { padding: 10px; }
    .ac-tec-body { padding: 8px; }
    .ac-tec-stats-grid { grid-template-columns: 1fr; gap: 6px; }
    .ac-tec-nav-item { padding: 8px 8px; font-size: 10px; }
    .ac-tec-brand-title { font-size: 13px; }
    .ac-tec-user-name { font-size: 11px; }
    .ac-tec-logo-box { width: 32px; height: 32px; font-size: 12px; }
    .ac-empresa-header { padding: 12px; }
    .ac-empresa-logo-big { width: 40px; height: 40px; font-size: 16px; }
    .ac-panel-header { padding: 14px; }
    .ac-panel-header-avatar { width: 40px; height: 40px; font-size: 18px; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE INTEGRAL â€” Completo para todos los componentes
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Prevenir scroll horizontal en portales â”€â”€ */
.ac-portal, .ac-ij-portal { overflow-x: hidden; }
.ac-portal img { max-width: 100%; height: auto; }
.ac-portal p, .ac-portal td { overflow-wrap: break-word; word-break: break-word; }

/* â”€â”€ Panel header: grupo de botones de acciÃ³n (base) â”€â”€ */
.ac-panel-header-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

/* â”€â”€ Login: bloque CTA "Â¿no tienes cuenta?" â”€â”€ */
.ac-login-cta-btns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 12px;
}
.ac-login-cta-btns .ac-btn {
    flex: 1;
    min-width: 120px;
    justify-content: center;
    text-align: center;
}

/* â•â• 900px: fix inputs en company search â•â• */
@media (max-width: 900px) {
    .ac-ij-company-input { min-width: 0; flex: 1; }
    .ac-ij-company-row { max-width: 100%; width: 100%; }
}

/* â•â• 768px: botones de panel, padding portal â•â• */
@media (max-width: 768px) {
    /* Padding decente en pÃ¡ginas normales (no IJ) */
    .ac-portal:not(.ac-ij-portal) { padding: 0 12px; }

    /* Botones de acciÃ³n del panel: apilados en columna */
    .ac-panel-header-actions { width: 100%; }
    .ac-panel-header-actions .ac-btn {
        flex: 1;
        justify-content: center;
        text-align: center;
        min-width: 0;
    }

    /* Publicar oferta header */
    .ac-publicar-header { padding: 20px 16px; }

    /* CTA login: botones a ancho completo */
    .ac-login-cta-btns .ac-btn { min-width: 0; }
}

/* â•â• 540px: company search, hero sub â•â• */
@media (max-width: 540px) {
    /* Hero sub info en columna */
    .ac-ij-hero-sub { flex-direction: column; gap: 6px; align-items: center; text-align: center; }
    .ac-ij-pub-btn { margin: 0; }

    /* Company search full-width */
    .ac-ij-company-row { flex-wrap: wrap; gap: 8px; }
    .ac-ij-company-input { min-width: 0; width: 100%; }
    .ac-ij-company-search { padding: 0; width: 100%; max-width: 100%; }
    .ac-ij-company-btn { width: 100%; border-radius: 8px; }

    /* Apply btn mÃ¡s compacto */
    .ac-ij-apply-btn { padding: 8px 14px; font-size: 12px; }
}

/* â•â• 480px: navbar, hero, valor bar â•â• */
@media (max-width: 480px) {
    /* Navbar: mostrar solo botÃ³n acceso candidatos */
    .ac-ij-access-empresa { display: none; }
    .ac-ij-access-candidato { font-size: 10px; padding: 5px 10px; }
    .ac-ij-navbar-right { gap: 6px; }

    /* Hero: mÃ¡s compacto en pantallas pequeÃ±as */
    .ac-ij-hero { padding: 16px 12px 14px; min-height: auto; }

    /* Value bar: mÃ¡s compacto */
    .ac-ij-value-bar { gap: 10px; padding: 14px 12px; }
    .ac-ij-value-item { font-size: 12px; }

    /* Publicar header */
    .ac-publicar-header { padding: 16px 14px; }

    /* CTA bar */
    .ac-ij-cta-bar { padding: 16px 14px; margin: 12px auto 0; }

    /* Stats */
    .ac-stat-card { padding: 18px 14px; }

    /* Candidature estado pill */
    .ac-cand-estado { font-size: 10px; padding: 3px 8px; }

    /* Searchbar fields en pequeÃ±o */
    .ac-ij-sb-field { padding: 8px 12px; }
    .ac-ij-sb-input { font-size: 14px; height: 40px; padding: 8px 6px; }

    /* Aviso info */
    .ac-aviso-info { padding: 12px 14px; font-size: 13px; }

    /* Panel tÃ©cnico: tabla mÃ¡s estrecha */
    .ac-tec-table thead th { padding: 10px; font-size: 10px; }
    .ac-tec-table tbody td { padding: 9px 10px; }
}

/* â•â• 360px: pantallas muy pequeÃ±as (Galaxy Fold, etc.) â•â• */
@media (max-width: 360px) {
    .ac-portal:not(.ac-ij-portal) { padding: 0 8px; }
    .ac-panel-box { padding: 10px; }
    .ac-registro-cabecera { padding: 14px 12px; }
    .ac-registro-body { padding: 12px; }
    .ac-tab { padding: 8px 8px; font-size: 9px; }
    .ac-btn { font-size: 12px; padding: 8px 12px; }
    .ac-login-box { padding: 20px 14px; }
    .ac-ij-navbar { padding: 0 8px; }
    .ac-ij-logo-text, .ac-ij-logo-accent { font-size: 16px; }
    .ac-ij-hero { padding: 14px 10px 12px; }
    .ac-panel-header-actions .ac-btn { font-size: 12px; padding: 8px 10px; }
}

