/* =====================================================================
   ICOMV · Área privada del colegiado · capa de diseño 2026 (propuesta, 04/10/2026)
   Se apoya en la plantilla actual (AdminLTE 2 + Bootstrap 3) sin sustituirla: todo
   va bajo la clase .cv, así que las pantallas que no la usan quedan como estaban.
   ===================================================================== */
.cv { --cv-tinta:#16324a; --cv-texto:#33475b; --cv-suave:#6b7c8d; --cv-linea:#dfe7ee; --cv-fondo:#f4f7fa;
      --cv-azul:#1f6fa5; --cv-azul-claro:#e8f2f9; --cv-verde:#1e8e5a; --cv-verde-claro:#e5f5ec; --cv-ambar:#8a5a00; --cv-ambar-claro:#fff5dd;
      font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif; color:var(--cv-texto); font-size:15px; line-height:1.45;
      max-width:1120px; margin:0 auto; padding:6px 4px 30px 4px; }
.cv *, .cv *:before, .cv *:after { box-sizing:border-box; }

/* cabecera de la pantalla */
.cv .cvCab { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px; margin:4px 0 18px 0; }
.cv .cvCab h1 { margin:0; font-size:26px; font-weight:700; color:var(--cv-tinta); letter-spacing:-.2px; }
.cv .cvCab p { margin:4px 0 0 0; color:var(--cv-suave); font-size:15px; }
.cv .cvMigas { font-size:13px; color:var(--cv-suave); margin-bottom:6px; }
.cv .cvMigas a { color:var(--cv-azul); text-decoration:none; }
.cv .cvMigas a:hover { text-decoration:underline; }

/* tarjetas */
.cv .cvRejilla { display:grid; grid-template-columns:repeat(12, 1fr); gap:16px; }
.cv .cvTarjeta { grid-column:span 12; background:#fff; border:1px solid var(--cv-linea); border-radius:10px; box-shadow:0 1px 2px rgba(22,50,74,.05); overflow:hidden; }
.cv .cvT6 { grid-column:span 6; } .cv .cvT7 { grid-column:span 7; } .cv .cvT5 { grid-column:span 5; } .cv .cvT4 { grid-column:span 4; } .cv .cvT8 { grid-column:span 8; }
.cv .cvTarjeta > header { display:flex; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--cv-linea); }
.cv .cvTarjeta > header .cvIco { width:34px; height:34px; border-radius:8px; background:var(--cv-azul-claro); color:var(--cv-azul); display:flex; align-items:center; justify-content:center; font-size:16px; flex:none; }
.cv .cvTarjeta > header h2 { margin:0; font-size:16px; font-weight:700; color:var(--cv-tinta); }
.cv .cvTarjeta > header small { display:block; font-size:12.5px; color:var(--cv-suave); font-weight:400; margin-top:1px; }
.cv .cvCuerpo { padding:16px 18px 18px 18px; }

/* ficha de datos (solo lectura): rótulo pequeño arriba, valor debajo */
.cv .cvDatos { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:16px 22px; margin:0; }
.cv .cvDatos > div { min-width:0; }
.cv .cvDatos .cvAncho { grid-column:1 / -1; }
.cv .cvDatos dt { font-size:11.5px; font-weight:600; color:var(--cv-suave); text-transform:uppercase; letter-spacing:.5px; margin:0 0 3px 0; }
.cv .cvDatos dd { margin:0; font-size:16px; color:var(--cv-tinta); font-weight:600; word-break:break-word; }
.cv .cvDatos dd.cvVacio { color:#a9b6c2; font-weight:400; }
.cv .cvMono { font-family:Consolas,"SFMono-Regular",Menlo,monospace; letter-spacing:.5px; font-size:15.5px; }

/* identidad (datos personales) */
.cv .cvIdentidad { display:flex; align-items:center; gap:16px; padding:18px; background:linear-gradient(135deg, #16324a 0%, #1f6fa5 100%); color:#fff; }
.cv .cvAvatar { width:60px; height:60px; border-radius:50%; background:rgba(255,255,255,.16); border:2px solid rgba(255,255,255,.45); display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:700; flex:none; }
.cv .cvIdentidad h2 { margin:0; font-size:21px; font-weight:700; color:#fff; }
.cv .cvIdentidad span { display:inline-block; margin-top:4px; font-size:13.5px; background:rgba(255,255,255,.16); border-radius:20px; padding:2px 11px; }

/* cuotas (datos bancarios) */
.cv .cvLineas { list-style:none; margin:0; padding:0; }
.cv .cvLineas li { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px dashed var(--cv-linea); font-size:15.5px; }
.cv .cvLineas li span:last-child { font-weight:600; color:var(--cv-tinta); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cv .cvLineas li.cvCero span { color:#a9b6c2; font-weight:400; }
.cv .cvTotal { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding:14px 16px; border-radius:8px; background:var(--cv-azul-claro); }
.cv .cvTotal span:first-child { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--cv-azul); }
.cv .cvTotal span:last-child { font-size:26px; font-weight:700; color:var(--cv-tinta); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cv .cvEtiqueta { display:inline-flex; align-items:center; gap:6px; border-radius:20px; padding:4px 12px; font-size:13.5px; font-weight:600; background:var(--cv-verde-claro); color:var(--cv-verde); }
.cv .cvEtiqueta.cvGris { background:#eef2f6; color:var(--cv-suave); }

/* listas de elementos dentro de una tarjeta (especialidades, IAE, sociedades, ejercicio público) */
.cv .cvItems { padding:0 18px; }
.cv .cvItem { padding:18px 0; border-top:1px solid var(--cv-linea); }
.cv .cvItem:first-child { border-top:0; }
.cv .cvItem h3 { margin:0 0 4px 0; font-size:17px; font-weight:700; color:var(--cv-tinta); line-height:1.3; }
.cv .cvItem h3 .cvEtiqueta { font-size:12px; padding:2px 10px; margin-left:6px; vertical-align:2px; }
.cv .cvItem .cvItemSub { margin:0 0 4px 0; color:var(--cv-suave); font-size:14px; }
.cv .cvItem .cvDatos { margin-top:12px; }

/* tablas (movimientos colegiales): la tabla y sus botones de exportación son los de siempre */
.cv .cvTablaMarco { overflow-x:auto; }
.cv table.cvTabla { border:0; margin:10px 0 !important; font-size:14.5px; }
.cv table.cvTabla thead th { background:#f4f7fa; color:var(--cv-suave); font-size:11.5px; text-transform:uppercase; letter-spacing:.5px; border-bottom:1px solid var(--cv-linea) !important; border-top:0; padding:10px 12px; }
.cv table.cvTabla tfoot { display:none; }
.cv table.cvTabla tbody td { border-top:1px solid #eef2f6; padding:11px 12px; color:var(--cv-texto); vertical-align:middle; }
.cv table.cvTabla tbody td:first-child { font-weight:600; color:var(--cv-tinta); }
.cv .dataTables_filter input { border:1px solid #c9d6e2; border-radius:6px; padding:5px 9px; margin-left:6px; }
.cv .dt-buttons { margin-bottom:8px; }
.cv .dt-buttons .dt-button, .cv .dt-buttons a.btn { border:1px solid var(--cv-linea); background:#fff; border-radius:6px; padding:4px 8px; margin-right:6px; }

/* caja del formulario de siempre (ejercicio público), solo retocada por fuera */
.cvCajaForm { border-top-color:#1f6fa5; border-radius:10px; box-shadow:0 1px 2px rgba(22,50,74,.05); max-width:1120px; margin-left:auto; margin-right:auto; }
.cvCajaForm .box-title { font-weight:700; color:#16324a; font-size:16px; }
.cvCajaForm .cvFormAyuda { color:#6b7c8d; font-size:14.5px; margin:0 0 4px 0; text-align:left; padding:0 15px; }

/* avisos y estados vacíos */
.cv .cvNota { grid-column:span 12; display:flex; align-items:flex-start; gap:12px; background:var(--cv-ambar-claro); border:1px solid #f1dca6; color:var(--cv-ambar); border-radius:10px; padding:13px 16px; font-size:14.5px; }
.cv .cvNota i { font-size:18px; margin-top:1px; }
.cv .cvNota a { color:var(--cv-ambar); font-weight:700; text-decoration:underline; }
.cv .cvSinDatos { text-align:center; color:var(--cv-suave); padding:26px 12px; font-size:15px; }
.cv .cvSinDatos i { display:block; font-size:30px; color:#c3cfda; margin-bottom:8px; }

@media (max-width: 991px) { .cv .cvT4, .cv .cvT5, .cv .cvT6, .cv .cvT7, .cv .cvT8 { grid-column:span 12; } }
@media (max-width: 520px) { .cv .cvCab h1 { font-size:22px; } .cv .cvIdentidad { flex-direction:column; text-align:center; } .cv .cvTotal span:last-child { font-size:22px; } }

/* menú lateral: opción en la que se está (la plantilla no la marcaba) */
.sidebar-menu li.cvAqui > a { background:#1e282c; color:#fff; border-left-color:#3c8dbc; }
.sidebar-menu .treeview-menu li.cvAqui > a { color:#fff; font-weight:600; }
.sidebar-menu .treeview-menu li.cvAqui > a > .fa { color:#5fb3e6; }

/* =====================================================================
   Componentes de las pantallas con acciones (piscina, bolsa de empleo) · 04/10/2026
   ===================================================================== */
/* botones */
.cvBtn { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid transparent; border-radius:8px; padding:9px 16px; font-size:14.5px; font-weight:600;
         font-family:inherit; line-height:1.2; cursor:pointer; text-decoration:none !important; transition:background .12s, border-color .12s, box-shadow .12s; white-space:nowrap; }
.cvBtn:focus { outline:2px solid #8fc1e3; outline-offset:2px; }
.cvBtnPri { background:#1f6fa5; color:#fff !important; } .cvBtnPri:hover { background:#195d8b; }
.cvBtnSec { background:#fff; color:#16324a !important; border-color:#c9d6e2; } .cvBtnSec:hover { background:#f4f7fa; border-color:#9fb4c6; }
.cvBtnVerde { background:#1e8e5a; color:#fff !important; } .cvBtnVerde:hover { background:#18774b; }
.cvBtnPeligro { background:#fff; color:#b5372a !important; border-color:#e6b9b3; } .cvBtnPeligro:hover { background:#fdecea; border-color:#dd4b39; }
.cvBtn[disabled], .cvBtn.cvOff { opacity:.5; cursor:not-allowed; }
.cvBtnMini { padding:6px 11px; font-size:13.5px; border-radius:7px; }
.cvBtnGrande { padding:13px 22px; font-size:16px; }

/* velo y diálogos (comv2026.js) */
#cvVelo { position:fixed; left:0; top:0; right:0; bottom:0; z-index:99999; background:rgba(20,35,50,.62); display:flex; align-items:center; justify-content:center; padding:16px;
          font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif; }
#cvVelo .cvVeloCaja { background:#fff; border-radius:12px; padding:28px 30px 24px 30px; max-width:480px; width:100%; text-align:center; box-shadow:0 14px 50px rgba(0,0,0,.4); color:#33475b; font-size:15.5px; line-height:1.5; max-height:90vh; overflow:auto; }
#cvVelo .cvVeloIco { font-size:46px; margin-bottom:10px; } #cvVelo .cvAzul { color:#1f6fa5; } #cvVelo .cvVerde { color:#1e8e5a; } #cvVelo .cvRojo { color:#c0392b; }
#cvVelo .cvVeloTit { font-size:20px; font-weight:700; color:#16324a; margin-bottom:8px; }
#cvVelo .cvVeloTxt ul { text-align:left; margin:10px auto 0 auto; padding-left:22px; display:inline-block; }
#cvVelo .cvVeloPie { margin-top:20px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* cifras de resumen */
.cv .cvCifras { grid-column:span 12; display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px; }
.cv .cvCifra { background:#fff; border:1px solid var(--cv-linea); border-radius:10px; padding:16px 18px; display:flex; align-items:center; gap:14px; }
.cv .cvCifra .cvIco { width:44px; height:44px; border-radius:10px; background:var(--cv-azul-claro); color:var(--cv-azul); display:flex; align-items:center; justify-content:center; font-size:19px; flex:none; }
.cv .cvCifra.cvOk .cvIco { background:var(--cv-verde-claro); color:var(--cv-verde); } .cv .cvCifra.cvAviso .cvIco { background:var(--cv-ambar-claro); color:var(--cv-ambar); }
.cv .cvCifra b { display:block; font-size:24px; line-height:1.1; color:var(--cv-tinta); font-variant-numeric:tabular-nums; }
.cv .cvCifra span { font-size:13.5px; color:var(--cv-suave); }

/* campos de formulario */
.cv .cvCampos { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px 16px; }
.cv .cvCampo label { display:block; font-size:12.5px; font-weight:600; color:var(--cv-suave); margin:0 0 5px 0; }
.cv .cvCampo input[type="text"], .cv .cvCampo input[type="email"], .cv .cvCampo input[type="tel"], .cv .cvCampo input[type="search"], .cv .cvCampo select {
      width:100%; height:42px; border:1px solid #c9d6e2; border-radius:8px; padding:0 12px; font-size:15.5px; font-family:inherit; color:var(--cv-tinta); background:#fff; box-shadow:none; }
.cv .cvCampo input:focus, .cv .cvCampo select:focus { outline:0; border-color:var(--cv-azul); box-shadow:0 0 0 3px rgba(31,111,165,.16); }
.cv .cvCampo.cvMal input { border-color:#dd4b39; box-shadow:0 0 0 3px rgba(221,75,57,.12); }
.cv .cvAyuda { font-size:13.5px; color:var(--cv-suave); margin:0 0 12px 0; }
.cv .cvError { display:none; background:#fdecea; border:1px solid #f3b4ad; color:#a12a1c; border-radius:8px; padding:10px 14px; font-size:14.5px; margin-top:12px; }
.cv .cvError.cvVisible { display:block; }
.cv .cvPaso { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--cv-azul); color:#fff; font-size:14px; font-weight:700; flex:none; }
.cv .cvAcepto { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; margin:0; font-weight:400; cursor:pointer; }
.cv .cvAcepto input { margin:3px 0 0 0; width:17px; height:17px; flex:none; }
.cv details.cvLegal { margin-top:10px; font-size:13px; color:var(--cv-suave); }
.cv details.cvLegal summary { cursor:pointer; color:var(--cv-azul); font-weight:600; outline:0; }
.cv details.cvLegal div { margin-top:8px; padding:12px 14px; background:var(--cv-fondo); border-radius:8px; line-height:1.5; }
.cv details.cvLegal p { margin:0 0 8px 0; }

/* chips y etiquetas */
.cv .cvChips { display:flex; flex-wrap:wrap; gap:8px; }
.cv .cvChip { display:inline-flex; align-items:center; gap:6px; background:#eef2f6; color:var(--cv-texto); border-radius:20px; padding:4px 12px; font-size:13.5px; }
.cv .cvChip i { color:var(--cv-suave); }
.cv .cvChip.cvAzulClaro { background:var(--cv-azul-claro); color:var(--cv-azul); font-weight:600; } .cv .cvChip.cvAzulClaro i { color:var(--cv-azul); }
.cv .cvChip.cvAmbar { background:var(--cv-ambar-claro); color:var(--cv-ambar); font-weight:600; } .cv .cvChip.cvAmbar i { color:var(--cv-ambar); }
.cv .cvChip.cvVerdeClaro { background:var(--cv-verde-claro); color:var(--cv-verde); font-weight:600; } .cv .cvChip.cvVerdeClaro i { color:var(--cv-verde); }

/* piscina: días disponibles */
.cv .cvDias { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:12px; }
.cv .cvDia { border:1.5px solid var(--cv-linea); border-radius:10px; background:#fff; padding:12px 10px; text-align:center; cursor:pointer; font-family:inherit; transition:border-color .12s, box-shadow .12s, background .12s; }
.cv .cvDia:hover { border-color:var(--cv-azul); box-shadow:0 2px 8px rgba(31,111,165,.14); }
.cv .cvDia .cvDiaSem { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--cv-suave); }
.cv .cvDia .cvDiaNum { display:block; font-size:30px; font-weight:700; color:var(--cv-tinta); line-height:1.1; margin:2px 0; }
.cv .cvDia .cvDiaMes { display:block; font-size:13.5px; color:var(--cv-texto); }
.cv .cvDia .cvDiaHora { display:inline-block; margin-top:7px; font-size:12.5px; background:#eef2f6; border-radius:20px; padding:2px 10px; color:var(--cv-texto); }
.cv .cvDia.cvElegido { border-color:var(--cv-azul); background:var(--cv-azul-claro); box-shadow:0 0 0 3px rgba(31,111,165,.18); }
.cv .cvDia.cvElegido .cvDiaHora { background:#fff; }
.cv .cvDia.cvLleno { opacity:.45; cursor:not-allowed; background:var(--cv-fondo); }
.cv .cvDia.cvLleno:hover { border-color:var(--cv-linea); box-shadow:none; }
.cv .cvResumen { grid-column:span 12; position:sticky; bottom:12px; z-index:5; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; background:#16324a; color:#fff; border-radius:12px; padding:14px 18px; box-shadow:0 8px 24px rgba(22,50,74,.3); }
.cv .cvResumen b { font-size:16.5px; } .cv .cvResumen span { display:block; font-size:13.5px; opacity:.85; }
.cv .cvReserva { display:flex; flex-wrap:wrap; align-items:center; gap:20px; padding:22px 18px; }
.cv .cvReservaFecha { background:linear-gradient(135deg, #16324a 0%, #1f6fa5 100%); color:#fff; border-radius:12px; padding:14px 22px; text-align:center; min-width:150px; }
.cv .cvReservaFecha .cvDiaSem { font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; opacity:.85; display:block; }
.cv .cvReservaFecha .cvDiaNum { font-size:44px; font-weight:700; line-height:1; display:block; margin:4px 0; }
.cv .cvReservaFecha .cvDiaMes { font-size:15px; display:block; }

/* bolsa de empleo */
.cv .cvBarra { grid-column:span 12; background:#fff; border:1px solid var(--cv-linea); border-radius:10px; padding:14px 16px; }
.cv .cvPestanas { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.cv .cvPestana { border:1px solid var(--cv-linea); background:#fff; border-radius:20px; padding:6px 14px; font-size:14px; font-weight:600; color:var(--cv-texto); cursor:pointer; font-family:inherit; }
.cv .cvPestana:hover { border-color:#9fb4c6; }
.cv .cvPestana b { font-weight:600; color:var(--cv-suave); margin-left:4px; }
.cv .cvPestana.cvActiva { background:#16324a; border-color:#16324a; color:#fff; } .cv .cvPestana.cvActiva b { color:#b9cfe0; }
.cv .cvFiltros { display:grid; grid-template-columns:minmax(220px, 2fr) minmax(180px, 1fr) minmax(170px, 1fr); gap:12px; }
.cv .cvCuenta { grid-column:span 12; font-size:14px; color:var(--cv-suave); margin:-4px 2px; }
.cv .cvOfertas { grid-column:span 12; display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:16px; align-items:start; }
.cv .cvOferta { background:#fff; border:1px solid var(--cv-linea); border-radius:10px; padding:16px 18px; box-shadow:0 1px 2px rgba(22,50,74,.05); display:flex; flex-direction:column; gap:10px; }
.cv .cvOferta.cvInscrita { border-color:#a9dcc0; box-shadow:inset 3px 0 0 #1e8e5a; }
.cv .cvOferta h3 { margin:0; font-size:17px; font-weight:700; color:var(--cv-tinta); line-height:1.3; }
.cv .cvOferta .cvEmpresa { font-size:14px; color:var(--cv-suave); margin:-4px 0 0 0; }
.cv .cvOferta .cvPie { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-top:2px; padding-top:12px; border-top:1px solid #eef2f6; }
.cv .cvOferta .cvFechas { font-size:13px; color:var(--cv-suave); }
.cv .cvDetalle { border-top:1px dashed var(--cv-linea); padding-top:12px; font-size:14.5px; color:var(--cv-texto); line-height:1.55; }
.cv .cvDetalle h4 { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--cv-suave); margin:12px 0 6px 0; } .cv .cvDetalle h4:first-child { margin-top:0; }
.cv .cvDetalle p { margin:0 0 8px 0; } .cv .cvDetalle ul, .cv .cvDetalle ol { margin:0 0 8px 0; padding-left:22px; } .cv .cvDetalle h3 { font-size:15px; margin:10px 0 6px 0; }
.cv .cvDetalle a { color:var(--cv-azul); text-decoration:underline; word-break:break-all; }
.cv .cvContacto { background:var(--cv-fondo); border-radius:8px; padding:10px 12px; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:14px; }
.cv .cvContacto span i { color:var(--cv-suave); margin-right:5px; }
.cv .cvMas { grid-column:span 12; text-align:center; }
.cv .cvCV { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; }
.cv .cvCV .cvCVTexto { display:flex; align-items:center; gap:12px; min-width:240px; flex:1; }
.cv .cvCV .cvCVTexto i { font-size:28px; }
.cv .cvCV .cvCVTexto b { display:block; color:var(--cv-tinta); font-size:16px; } .cv .cvCV .cvCVTexto span { font-size:13.5px; color:var(--cv-suave); }
.cv .cvCV .cvCVAcciones { display:flex; flex-wrap:wrap; gap:8px; }
.cv .cvHeroe { text-align:center; padding:34px 22px; }
.cv .cvHeroe > i { font-size:44px; color:var(--cv-azul); }
.cv .cvHeroe h2 { margin:12px 0 6px 0; font-size:22px; font-weight:700; color:var(--cv-tinta); }
.cv .cvHeroe p { max-width:560px; margin:0 auto 18px auto; color:var(--cv-texto); }
.cv .cvHeroe .cvAcepto { max-width:520px; margin:0 auto 16px auto; text-align:left; }
.cv .cvHeroe details.cvLegal { max-width:640px; margin:14px auto 0 auto; text-align:left; }
@media (max-width: 767px) { .cv .cvFiltros { grid-template-columns:1fr; } .cv .cvOfertas { grid-template-columns:1fr; } .cv .cvResumen { position:static; } }

/* ==== inicio extra_A ==== */
/* =====================================================================
   Grupo A (inicio, certificados, renta, formación) · añadidos a la capa de diseño 2026 · 04/10/2026
   Para incorporar al final de comv2026.css (las páginas no enlazan este fichero por separado).
   ===================================================================== */
/* portada del área privada: saludo (se apoya en .cvIdentidad) */
.cv .cvPortada { padding:26px 24px; flex-wrap:wrap; }
.cv .cvPortada .cvAvatar { width:68px; height:68px; font-size:25px; }
.cv .cvPortada .cvSaludo { margin:0 0 3px 0; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:#fff; opacity:.8; }
.cv .cvPortada h2 { font-size:25px; line-height:1.2; }
.cv .cvPortada .cvPortadaTxt { flex:1; min-width:220px; }

/* rótulo de sección entre tarjetas */
.cv .cvTitulo { grid-column:span 12; margin:8px 2px -6px 2px; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--cv-suave); }

/* texto corrido dentro de una tarjeta (comunicados) y pie con la acción */
.cv .cvTexto { font-size:15.5px; line-height:1.6; color:var(--cv-texto); }
.cv .cvTexto p { margin:0 0 10px 0; } .cv .cvTexto p:last-child { margin-bottom:0; }
.cv .cvPieAccion { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; padding:13px 18px; border-top:1px solid var(--cv-linea); background:var(--cv-fondo); font-size:14px; color:var(--cv-suave); }
.cv .cvTarjeta.cvAlto { display:flex; flex-direction:column; } .cv .cvTarjeta.cvAlto .cvCuerpo { flex:1; }

/* accesos directos (baldosas con icono) */
.cv .cvAccesos { grid-column:span 12; display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:12px; }
.cv a.cvAcceso { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--cv-linea); border-radius:10px; padding:13px 14px; color:var(--cv-tinta); font-size:15px; font-weight:600;
                 text-decoration:none; transition:border-color .12s, box-shadow .12s; min-width:0; }
.cv a.cvAcceso:hover, .cv a.cvAcceso:focus { border-color:var(--cv-azul); box-shadow:0 2px 8px rgba(31,111,165,.14); outline:0; }
.cv a.cvAcceso .cvIco { width:38px; height:38px; border-radius:9px; background:var(--cv-azul-claro); color:var(--cv-azul); display:flex; align-items:center; justify-content:center; font-size:17px; flex:none; }
.cv a.cvAcceso .fa-angle-right { margin-left:auto; color:#b3c2cf; font-size:18px; }

/* líneas de importe cuyo texto llega ya redactado por la API (renta) */
.cv .cvLineas li.cvSolo span { white-space:normal; }
.cv .cvLogoDoc { height:44px; width:auto; border-radius:6px; flex:none; }

@media (max-width: 520px) {
  .cv .cvPortada { padding:22px 16px; } .cv .cvPortada h2 { font-size:21px; }
  .cv .cvAccesos { grid-template-columns:1fr 1fr; gap:10px; }
  .cv a.cvAcceso { flex-direction:column; align-items:flex-start; gap:8px; font-size:14.5px; } .cv a.cvAcceso .fa-angle-right { display:none; }
  .cv .cvPieAccion .cvBtn { width:100%; white-space:normal; }
}
/* ==== fin extra_A ==== */

/* ==== inicio extra_B ==== */
/* =====================================================================
   ICOMV · Área privada · diseño 2026 · estilos añadidos por el grupo B (04/10/2026)
   Páginas: contabilidad (Cobros y pagos) y contactar. Se carga DESPUÉS de comv2026.css.
   ===================================================================== */

/* avisos de resultado: variantes en verde (todo en orden) y en rojo (requiere atención) de .cvNota */
.cv .cvNota.cvNotaOk { background:var(--cv-verde-claro); border-color:#b5e0c8; color:#14663f; }
.cv .cvNota.cvNotaMal { background:#fdecea; border-color:#f3b4ad; color:#a12a1c; }
.cv .cvNota .cvNotaImporte { white-space:nowrap; font-variant-numeric:tabular-nums; }

/* campos de formulario que comv2026.css no cubre: numéricos, áreas de texto y campos de solo lectura */
.cv .cvCampos .cvAncho { grid-column:1 / -1; }
.cv .cvCampo input[type="number"] { width:100%; height:42px; border:1px solid #c9d6e2; border-radius:8px; padding:0 12px; font-size:15.5px; font-family:inherit; color:var(--cv-tinta); background:#fff; box-shadow:none; -moz-appearance:textfield; }
.cv .cvCampo input[type="number"]::-webkit-outer-spin-button, .cv .cvCampo input[type="number"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.cv .cvCampo textarea { display:block; width:100%; min-height:190px; border:1px solid #c9d6e2; border-radius:8px; padding:10px 12px; font-size:15.5px; line-height:1.45; font-family:inherit; color:var(--cv-tinta); background:#fff; box-shadow:none; resize:vertical; }
.cv .cvCampo textarea:focus { outline:0; border-color:var(--cv-azul); box-shadow:0 0 0 3px rgba(31,111,165,.16); }
.cv .cvCampo input[readonly] { background:var(--cv-fondo); border-color:var(--cv-linea); color:var(--cv-texto); cursor:default; }
.cv .cvCampo input[readonly]:focus { border-color:var(--cv-linea); box-shadow:none; }
.cv .cvCampo.cvMal textarea { border-color:#dd4b39; box-shadow:0 0 0 3px rgba(221,75,57,.12); }

/* mensajes de validación (jQuery Validate añade label.error tras el campo) y errores del servidor */
.cv .cvCampo label.error, .cv .cvErrorCampo { display:block; margin:5px 0 0 0; font-size:13.5px; font-weight:400; color:#a12a1c; }
.cv .cvErrorCampo p { margin:0; }

/* contador de caracteres, ayuda al pie y fila de botones de un formulario */
.cv .cvContador { margin-top:6px; text-align:right; font-size:13px; color:var(--cv-suave); font-variant-numeric:tabular-nums; }
.cv .cvContador span { font-weight:700; }
.cv .cvAyudaPie { margin:12px 0 0 0; }
.cv .cvPieForm { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:16px; }
@media (max-width: 520px) { .cv .cvPieForm .cvBtn { width:100%; } }
/* ==== fin extra_B ==== */

/* ==== inicio extra_C ==== */
/* =====================================================================
   Grupo C (peritajes) · añadidos a la capa de diseño 2026 · 04/10/2026
   Para incorporar al final de comv2026.css (la página no enlaza este fichero por separado).
   ===================================================================== */
/* bloque a todo el ancho de la rejilla cuyo formulario vuelve a ser una rejilla de tarjetas (formulario que se muestra u oculta entero) */
.cv .cvBloque { grid-column:span 12; min-width:0; }
.cv .cvBloque > form { display:grid; grid-template-columns:repeat(12, 1fr); gap:16px; margin:0; }
.cv .cvBloque > form > * { grid-column:span 12; min-width:0; }

/* campo que ocupa toda la fila, rótulo de campo opcional */
.cv .cvCampos .cvAncho { grid-column:1 / -1; }
.cv .cvCampo .cvOpcional { font-weight:400; color:#a9b6c2; }

/* validación con jQuery Validate (clases error / success que pone el plugin) y errores devueltos por el servidor */
.cv .cvCampo input.error, .cv .cvCampo select.error { border-color:#dd4b39; box-shadow:0 0 0 3px rgba(221,75,57,.12); }
.cv .cvCampo label.error, .cv .cvCampo .cvCampoError { display:block; margin:5px 0 0 0; font-size:13px; font-weight:400; color:#a12a1c; }

/* casilla de aceptación con el rótulo y un enlace al lado (el enlace no marca la casilla) */
.cv .cvAcepto label { display:inline; margin:0; font-weight:400; cursor:pointer; }
.cv .cvAcepto a { color:var(--cv-azul); font-weight:600; text-decoration:underline; cursor:pointer; }

@media (max-width: 520px) { .cv .cvResumen .cvBtn { width:100%; white-space:normal; } }
/* ==== fin extra_C ==== */

/* ==== inicio extra_E ==== */
/* =====================================================================
   Grupo E · Recetas (entrada), Elecciones y Cita previa · 04/10/2026
   Para añadir a comv2026.css (todo va bajo .cv; no pisa nada de lo que ya hay).
   ===================================================================== */
/* tarjeta de acceso: el botón queda siempre abajo aunque los textos midan distinto */
.cv .cvAcceso { display:flex; flex-direction:column; }
.cv .cvAcceso .cvCuerpo { flex:1; display:flex; flex-direction:column; gap:14px; }
.cv .cvAcceso .cvCuerpo p { margin:0; }
.cv .cvAcceso .cvCuerpo .cvBtn { margin-top:auto; align-self:flex-start; white-space:normal; text-align:left; }

/* texto corrido dentro de una tarjeta y lista con icono */
.cv .cvTexto p { margin:0 0 10px 0; } .cv .cvTexto p:last-child { margin-bottom:0; }
.cv .cvLista { list-style:none; margin:0 0 10px 0; padding:0; }
.cv .cvLista li { display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-top:1px dashed var(--cv-linea); }
.cv .cvLista li:first-child { border-top:0; }
.cv .cvLista li > i { width:34px; height:34px; border-radius:8px; background:var(--cv-azul-claro); color:var(--cv-azul); display:flex; align-items:center; justify-content:center; font-size:16px; flex:none; }
.cv .cvLista li strong { color:var(--cv-tinta); }

/* tabla de texto (comparativas, normativa): las celdas parten línea y la tabla no baja de un ancho legible */
.cv table.cvTabla.cvTablaTexto { width:100%; min-width:560px; }
.cv table.cvTabla.cvTablaTexto th, .cv table.cvTabla.cvTablaTexto td { white-space:normal; text-align:left; vertical-align:top; }
.cv table.cvTabla.cvTablaTexto .cvCentro { text-align:center; white-space:nowrap; }

/* aviso grave (rojo) con el mismo esqueleto que .cvNota, y cita de un artículo */
.cv .cvNota.cvNotaGrave { background:#fdecea; border-color:#f3b4ad; color:#a12a1c; }
.cv .cvNota.cvNotaGrave b { display:block; font-size:16px; }
.cv .cvArticulo { margin:0; padding:12px 16px; border-left:4px solid var(--cv-azul); background:var(--cv-fondo); border-radius:0 8px 8px 0; font-size:14.5px; line-height:1.55; color:var(--cv-texto); }
.cv .cvArticulo b { display:block; color:var(--cv-tinta); margin-bottom:4px; }

/* cita previa: calendario a la izquierda y horas a la derecha (lo que pinta citaPrevia.js) */
.cv .cvCita { display:grid; grid-template-columns:minmax(260px, auto) 1fr; gap:18px 24px; align-items:start; }
.cv .cvCita .cvCitaHoras > span { float:none; display:block; width:auto; padding-left:0; padding-right:0; }
.cv .cvCita .cvCitaHoras > span.ocultar { display:none; }
@media (max-width: 767px) { .cv .cvCita { grid-template-columns:1fr; } .cv .cvCita .datepicker { max-width:100%; } }
/* ==== fin extra_E ==== */

/* ==== inicio extra_D ==== */
/* =====================================================================
   ICOMV · Área privada del colegiado · pantallas SIN sesión (grupo D) · 04/10/2026
   Acceso, doble factor, recuperación de contraseña e IP bloqueada.
   Hoja AUTÓNOMA: estas páginas son documentos completos, sin la plantilla AdminLTE ni el
   contenedor .cv, así que aquí se define todo lo necesario (colores incluidos). Está escrita
   para verse igual con Bootstrap 3 cargado (páginas de recuperación) o sin él (acceso, 2FA).
   Todo en px: Bootstrap 3 pone html{font-size:10px} y los rem bailarían.
   ===================================================================== */
body.cvAccPagina { margin:0; padding:0; width:auto; height:auto; min-height:100vh; overflow:visible; background:#16324a;
  font-family:"Source Sans Pro","Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; line-height:1.45; color:#33475b;
  text-align:left; vertical-align:baseline; -webkit-text-size-adjust:100%; position:relative; z-index:0; }
body.cvAccPagina:before { content:""; position:fixed; top:0; right:0; bottom:0; left:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(900px 520px at 8% -8%, rgba(86,160,208,.42), rgba(86,160,208,0) 62%),
    radial-gradient(820px 520px at 108% 108%, rgba(31,111,165,.60), rgba(31,111,165,0) 60%),
    linear-gradient(160deg, #10273b 0%, #16324a 46%, #1b5682 100%); }

.cvAcc { min-height:100vh; display:flex; flex-direction:column; align-items:center; padding:36px 16px 22px 16px; box-sizing:border-box; }
.cvAcc *, .cvAcc *:before, .cvAcc *:after { box-sizing:border-box; }

/* tarjeta central */
.cvAcc .cvAccTarjeta { width:100%; max-width:430px; margin:auto auto 0 auto; background:#fff; border-radius:14px; border-top:4px solid #1f6fa5;
  box-shadow:0 20px 50px rgba(5,18,31,.38), 0 2px 6px rgba(5,18,31,.20); padding:28px 30px 26px 30px; text-align:left; }
.cvAcc .cvAccTarjeta.cvAccAncha { max-width:500px; }
.cvAcc .cvAccLogo { text-align:center; margin:0 0 16px 0; }
.cvAcc .cvAccLogo img { display:inline-block; max-width:210px; width:auto; height:auto; max-height:110px; margin:0; border:0; vertical-align:middle; }
.cvAcc .cvAccTitulo { margin:0 0 6px 0; padding:0; font-family:inherit; font-size:22px; line-height:1.25; font-weight:700; color:#16324a; text-align:center;
  letter-spacing:-.2px; text-transform:none; text-shadow:none; }
.cvAcc .cvAccFrase { margin:0 0 20px 0; font-size:15px; line-height:1.45; color:#6b7c8d; text-align:center; font-weight:400; }
.cvAcc .cvAccEntorno { display:inline-block; vertical-align:3px; margin-left:6px; padding:2px 9px; border-radius:20px; background:#fff5dd; border:1px solid #f1dca6;
  color:#8a5a00; font-size:11.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; }

/* avisos (flashdata, respuestas de la API) */
.cvAcc .cvAccAviso { display:flex; align-items:flex-start; gap:10px; margin:0 0 18px 0; padding:12px 14px; border-radius:9px; border:1px solid #cfe1ef;
  background:#e8f2f9; color:#1a5a87; font-size:15px; line-height:1.45; text-align:left; text-transform:none; font-weight:400; word-break:break-word; }
.cvAcc .cvAccAviso > i { font-size:18px; line-height:1.2; margin-top:1px; flex:none; }
.cvAcc .cvAccAviso > div { min-width:0; }
.cvAcc .cvAccAviso strong { font-weight:700; }
.cvAcc .cvAccAviso p { margin:0; color:inherit; font-size:inherit; }
.cvAcc .cvAccAviso.cvAccMal { background:#fdecea; border-color:#f3c4be; color:#a3281b; }
.cvAcc .cvAccAviso.cvAccOjo { background:#fff5dd; border-color:#f1dca6; color:#8a5a00; }
.cvAcc .cvAccAviso.cvAccBien { background:#e5f5ec; border-color:#b9e1cb; color:#17734a; }
.cvAcc .cvAccAviso.cvAccGrande { font-size:16.5px; padding:16px 16px; margin-bottom:6px; }

/* formulario */
.cvAcc form { margin:0; padding:0; }
.cvAcc .cvAccCampo { margin:0 0 15px 0; padding:0; }
.cvAcc .cvAccCampo label { display:block; float:none; width:auto; max-width:none; margin:0 0 6px 0; padding:0; font-size:13px; font-weight:600; color:#4a5d70; text-align:left; }
.cvAcc .cvAccEntrada { position:relative; }
.cvAcc .cvAccEntrada > i.fa { position:absolute; left:13px; top:23px; margin-top:-8px; width:16px; height:16px; line-height:16px; text-align:center; font-size:15px; color:#8fa1b3; pointer-events:none; z-index:2; }
.cvAcc .cvAccEntrada input { display:block; float:none; width:100%; height:46px; min-height:46px; margin:0; padding:10px 12px 10px 40px; font-family:inherit; font-size:16px; line-height:1.3;
  color:#16324a; background:#fff; background-image:none; border:1px solid #c9d5e0; border-radius:8px; box-shadow:none; outline:0; text-shadow:none;
  -webkit-appearance:none; -moz-appearance:none; appearance:none; transition:border-color .15s ease, box-shadow .15s ease; }
.cvAcc .cvAccEntrada input:focus { border-color:#1f6fa5; box-shadow:0 0 0 3px rgba(31,111,165,.18); }
.cvAcc .cvAccEntrada input::-webkit-input-placeholder { color:#9aa9b8; opacity:1; }
.cvAcc .cvAccEntrada input::-moz-placeholder { color:#9aa9b8; opacity:1; }
.cvAcc .cvAccEntrada input::placeholder { color:#9aa9b8; opacity:1; }
.cvAcc .cvAccEntrada input[type="number"] { -moz-appearance:textfield; }
.cvAcc .cvAccEntrada input[type="number"]::-webkit-outer-spin-button,
.cvAcc .cvAccEntrada input[type="number"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.cvAcc .cvAccEntrada input[type="date"] { -webkit-appearance:none; appearance:none; }
.cvAcc .cvAccEntrada.cvAccConVer input { padding-right:48px; }
.cvAcc .cvAccVer { position:absolute; right:4px; top:4px; width:38px; height:38px; margin:0; padding:0; border:0; border-radius:6px; background:transparent; background-image:none; box-shadow:none;
  color:#6b7c8d; font-size:16px; line-height:38px; text-align:center; cursor:pointer; z-index:2; }
.cvAcc .cvAccVer:hover, .cvAcc .cvAccVer:focus { background:#eef3f7; color:#16324a; outline:0; }
.cvAcc .cvAccAyuda { margin:6px 0 0 0; font-size:13px; line-height:1.4; color:#6b7c8d; text-align:left; }
.cvAcc .cvAccError { margin:6px 0 0 0; font-size:13.5px; color:#a3281b; }
.cvAcc .cvAccError p { margin:0; color:inherit; }

/* campo del código de doble factor */
.cvAcc .cvAccCodigo input { padding-left:12px; text-align:center; font-family:Consolas,"SFMono-Regular",Menlo,monospace; font-size:22px; letter-spacing:4px; height:52px; }
.cvAcc .cvAccCodigo input::-webkit-input-placeholder { font-family:"Source Sans Pro","Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; letter-spacing:0; }
.cvAcc .cvAccCodigo input::-moz-placeholder { font-family:"Source Sans Pro","Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; letter-spacing:0; }
.cvAcc .cvAccCodigo input::placeholder { font-family:"Source Sans Pro","Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; letter-spacing:0; }
.cvAcc .cvAccReloj { font-weight:700; color:#a3281b; white-space:nowrap; }

/* botones y enlaces */
.cvAcc .cvAccBoton { display:block; width:100%; min-height:48px; margin:6px 0 0 0; padding:11px 18px; border:0; border-radius:8px; background:#1f6fa5; background-image:none;
  color:#fff; font-family:inherit; font-size:16px; line-height:1.3; font-weight:700; text-align:center; text-decoration:none; text-shadow:none; white-space:normal;
  box-shadow:0 1px 2px rgba(22,50,74,.25); cursor:pointer; -webkit-appearance:none; appearance:none; transition:background-color .15s ease; }
.cvAcc .cvAccBoton:hover, .cvAcc .cvAccBoton:focus { background:#185a87; color:#fff; text-decoration:none; outline:0; }
.cvAcc .cvAccBoton:focus { box-shadow:0 0 0 3px rgba(31,111,165,.30); }
.cvAcc .cvAccBoton i { margin-right:7px; }
.cvAcc .cvAccBoton.cvAccClaro { background:#fff; color:#1f6fa5; border:1px solid #c9d5e0; box-shadow:none; }
.cvAcc .cvAccBoton.cvAccClaro:hover, .cvAcc .cvAccBoton.cvAccClaro:focus { background:#f1f6fa; color:#185a87; }
.cvAcc .cvAccEnlaces { margin:16px 0 0 0; padding:14px 0 0 0; border-top:1px solid #e3eaf0; text-align:center; font-size:14.5px; color:#6b7c8d; }
.cvAcc .cvAccEnlaces a { color:#1f6fa5; font-weight:600; text-decoration:none; cursor:pointer; }
.cvAcc .cvAccEnlaces a:hover, .cvAcc .cvAccEnlaces a:focus { color:#185a87; text-decoration:underline; }
.cvAcc .cvAccEnlaces i { margin-right:5px; }

/* textos largos (doble factor, IP bloqueada) */
.cvAcc .cvAccTexto { margin:0 0 18px 0; font-size:15px; line-height:1.5; color:#33475b; text-align:left; }
.cvAcc .cvAccTexto p { margin:0 0 11px 0; font-size:15px; line-height:1.5; color:#33475b; }
.cvAcc .cvAccTexto p:last-child { margin-bottom:0; }
.cvAcc .cvAccTexto a { color:#1f6fa5; font-weight:600; text-decoration:none; word-break:break-all; }
.cvAcc .cvAccTexto a:hover { text-decoration:underline; }
.cvAcc .cvAccNotaPie { margin:14px 0 0 0; font-size:13.5px; line-height:1.45; color:#6b7c8d; text-align:center; }
.cvAcc .cvAccIcono { width:54px; height:54px; margin:0 auto 12px auto; border-radius:50%; background:#e8f2f9; color:#1f6fa5; font-size:24px; line-height:54px; text-align:center; }
.cvAcc .cvAccIcono.cvAccMal { background:#fdecea; color:#a3281b; }

/* pie común (plantilla footerSinLoguear, que no se toca: se viste desde aquí) */
.cvAcc .cvAccPie { width:100%; max-width:600px; margin:22px auto auto auto; padding:0; text-align:center; color:#c9d8e5; font-size:12.5px; line-height:1.5; }
.cvAcc .cvAccPie br, .cvAcc .cvAccPie hr { display:none; }
.cvAcc .cvAccPie .blanco11 { display:block; margin:0 0 10px 0; font-family:inherit; font-size:12.5px !important; line-height:1.5; color:#c9d8e5; text-align:center; animation:none; -webkit-animation:none; }
.cvAcc .cvAccPie a.blanco11 { display:inline; margin:0; color:#fff; text-decoration:underline; }
.cvAcc .cvAccPie a { display:inline-block; margin:0 3px 6px 3px; text-decoration:none; }
.cvAcc .cvAccPie button, .cvAcc .cvAccPie .btn { display:inline-block; width:auto; height:auto; margin:0; padding:5px 14px; border:1px solid rgba(255,255,255,.38); border-radius:20px;
  background:transparent; background-image:none; box-shadow:none; color:#fff; font-family:inherit; font-size:12.5px; line-height:1.4; font-weight:600; text-shadow:none; cursor:pointer;
  -webkit-appearance:none; appearance:none; }
.cvAcc .cvAccPie button:hover, .cvAcc .cvAccPie .btn:hover, .cvAcc .cvAccPie button:focus, .cvAcc .cvAccPie .btn:focus { background:rgba(255,255,255,.14); color:#fff; outline:0; }

/* móvil */
@media (max-width:480px) {
  .cvAcc { padding:18px 12px 16px 12px; }
  .cvAcc .cvAccTarjeta { padding:22px 18px 20px 18px; border-radius:12px; }
  .cvAcc .cvAccLogo img { max-width:170px; max-height:90px; }
  .cvAcc .cvAccTitulo { font-size:20px; }
  .cvAcc .cvAccCodigo input { font-size:20px; letter-spacing:3px; }
}

/* tarjeta sin pie debajo (doble factor, IP bloqueada): centrada en la pantalla */
.cvAcc .cvAccTarjeta.cvAccSola { margin-bottom:auto; }
/* ==== fin extra_D ==== */

/* ==== inicio extra_X1 ==== */
/* ==== extra_X1 · pantallas sin sesión del portal de empresas y centros (05/10/2026) ==== */

/* acceso: botón «Alta de Empresa» dentro del bloque de enlaces de la tarjeta */
.cvAcc .cvAccEnlaces a.cvAccBoton { margin-top:10px; font-weight:700; }
.cvAcc .cvAccEnlaces a.cvAccBoton:hover, .cvAcc .cvAccEnlaces a.cvAccBoton:focus { text-decoration:none; }
.cvAcc .cvAccLogo a { display:inline-block; text-decoration:none; }

/* alta de empresa: formulario largo en tarjetas .cv sobre el fondo corporativo de las pantallas de acceso */
.cvAcc .cv.cvAlta { width:100%; max-width:860px; margin:0 auto; padding:0 0 4px 0; text-align:left; }
.cvAcc .cv.cvAlta .cvAltaCab { grid-column:span 12; background:#fff; border-radius:14px; border-top:4px solid #1f6fa5; padding:24px 26px 22px 26px; text-align:center;
  box-shadow:0 20px 50px rgba(5,18,31,.38), 0 2px 6px rgba(5,18,31,.20); }
.cvAcc .cv.cvAlta .cvAltaCab .cvAccFrase { margin:0 auto; max-width:600px; }
.cvAcc .cv.cvAlta .cvTarjeta { border-color:transparent; box-shadow:0 10px 28px rgba(5,18,31,.28); }
.cvAcc .cv.cvAlta .cvCampos { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.cvAcc .cv.cvAlta .cvCampo { min-width:0; }
.cvAcc .cv.cvAlta .cvAltaNota { margin:0; }
.cvAcc .cv.cvAlta .cvAltaLegal { margin-top:0; }
.cvAcc .cv.cvAlta .cvAltaLegal .clausulaLOPD { text-align:justify; }
.cvAcc .cv.cvAlta .cvResumen { border:1px solid rgba(255,255,255,.24); }
.cvAcc .cv.cvAlta .cvAltaVolver { grid-column:span 12; text-align:center; font-size:14.5px; }
.cvAcc .cv.cvAlta .cvAltaVolver a { color:#fff; font-weight:600; text-decoration:none; }
.cvAcc .cv.cvAlta .cvAltaVolver a:hover, .cvAcc .cv.cvAlta .cvAltaVolver a:focus { text-decoration:underline; }
.cvAcc .cv.cvAlta .cvAltaVolver i { margin-right:5px; }
/* desplegable desactivado (País mientras la provincia sea española, y al revés) */
.cv .cvCampo select[disabled] { background:var(--cv-fondo); border-color:var(--cv-linea); color:#8a99a8; cursor:not-allowed; }
@media (max-width:600px) { .cvAcc .cv.cvAlta .cvCampos { grid-template-columns:minmax(0, 1fr); } }
@media (max-width:480px) { .cvAcc .cv.cvAlta .cvAltaCab { padding:20px 16px 18px 16px; border-radius:12px; } }
/* ==== fin extra_X1 ==== */
/* ==== fin extra_X1 ==== */
/* ==== fin extra_X1 ==== */
/* ==== fin extra_X1 ==== */

/* ==== inicio extra_X2 ==== */
/* =====================================================================
   Portal de centros y empresas · grupo X2 (portada y recetas de centros) · añadidos a la capa de diseño 2026 · 05/10/2026
   Para incorporar al final de comv2026.css (las páginas no enlazan este fichero por separado).
   Las clases rc… son las que ya usaban recetas.php y recetasPeticiones.php (varias las pinta o las lee
   recetasCentros.js o el JavaScript del pie, que no se tocan): aquí solo se visten con la paleta 2026, bajo .cv.
   ===================================================================== */

/* --- piezas generales --- */
/* botones a la derecha de la cabecera de la pantalla */
.cv .cvCabAcciones { display:flex; flex-wrap:wrap; gap:8px; }
/* pila de bloques dentro de una celda de la rejilla (formulario que se oculta entero) */
.cv .cvPila { display:grid; grid-template-columns:minmax(0, 1fr); gap:16px; }
/* aviso informativo (azul) con el mismo esqueleto que .cvNota */
.cv .cvNota.cvNotaInfo { background:var(--cv-azul-claro); border-color:#cfe1ef; color:#1a5a87; }
.cv .cvNota.cvNotaInfo b { color:var(--cv-tinta); }
.cv .cvNota > div { min-width:0; }
.cv .cvHeroe .cvBtn { white-space:normal; }
@media (max-width: 520px) { .cv .cvCabAcciones { width:100%; } .cv .cvCabAcciones .cvBtn { flex:1 1 auto; } }

/* --- recetas.php (Pedir recetas): lo que pinta recetasCentros.js --- */
.cv .rcLogoGeneral { background:var(--cv-fondo); border:1px solid var(--cv-linea); border-radius:8px; padding:10px 14px; margin-bottom:14px; font-size:14px; color:var(--cv-texto); }
.cv .rcLogoGeneral > i { color:var(--cv-azul); margin-right:3px; }
.cv .rcLogoGeneral b { color:var(--cv-tinta); }
.cv .rcLogoGeneral a { color:var(--cv-azul); text-decoration:none; font-weight:600; }
.cv .rcLogoGeneral a:hover { text-decoration:underline; }
.cv .rcLogoGeneral a.rcLogoQuitar { color:#b5372a; }
.cv .rcLogoGeneral .rcLogoNombre { color:var(--cv-tinta); font-weight:700; max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:inline-block; vertical-align:bottom; }
.cv .rcLogoGeneral .rcLogoGenNota { display:block; font-size:12.5px; color:var(--cv-suave); margin-top:2px; }

.cv #rcFormulario .table-responsive, .cv #rcCaja .table-responsive { border:0; margin-bottom:0; }
.cv #rcTabla { margin-bottom:12px; font-size:14.5px; }
.cv #rcTabla, .cv #rcTabla > thead > tr > th, .cv #rcTabla > tbody > tr > td { border-color:var(--cv-linea); }
.cv #rcTabla > thead > tr > th { background:#f4f7fa; color:var(--cv-suave); font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:.5px; vertical-align:middle; padding:10px; border-bottom-width:1px; }
.cv #rcTabla > tbody > tr > td { vertical-align:middle; padding:9px 10px; }
.cv #rcTabla td.rcNum { width:40px; text-align:center; color:var(--cv-suave); font-weight:700; }
.cv #rcTabla td.rcImporte { width:124px; text-align:right; font-weight:700; color:var(--cv-tinta); white-space:nowrap; font-variant-numeric:tabular-nums; }
.cv #rcTabla td.rcQuitar { width:50px; text-align:center; }
.cv #rcTabla select.form-control { min-width:120px; border-color:#c9d6e2; border-radius:6px; box-shadow:none; color:var(--cv-tinta); font-size:14.5px; }
.cv #rcTabla select.form-control:focus { border-color:var(--cv-azul); box-shadow:0 0 0 3px rgba(31,111,165,.16); }
.cv #rcTabla select.rcEspecialidad { min-width:200px; }
.cv #rcTabla select.rcTalonarios { min-width:70px; }
.cv #rcTabla .select2-container { width:100% !important; min-width:250px; }
.cv #rcTabla .select2-container .select2-selection--single { border-color:#c9d6e2; border-radius:6px; }
.cv #rcTabla .select2-container--focus .select2-selection--single, .cv #rcTabla .select2-container--open .select2-selection--single { border-color:var(--cv-azul); }
.cv #rcTabla tr.rcConError > td { background:#fdecea; }
.cv #rcTabla .rcMotivo { display:block; color:#a12a1c; font-size:12.5px; font-weight:600; margin-top:4px; }
.cv #rcTabla .rcLogoLinea { margin-top:5px; font-size:12.5px; white-space:nowrap; }
.cv #rcTabla .rcLogoLinea a { color:var(--cv-azul); text-decoration:none; }
.cv #rcTabla .rcLogoLinea a:hover { text-decoration:underline; }
.cv #rcTabla .rcLogoLinea a.rcLogoQuitar { color:#b5372a; }
.cv #rcTabla .rcLogoNombre { color:var(--cv-tinta); font-weight:600; max-width:150px; overflow:hidden; text-overflow:ellipsis; display:inline-block; vertical-align:bottom; }
.cv #rcTabla .rcLogoHereda { color:var(--cv-suave); }
.cv #rcTabla .rcBtnQuitar { background:#fff; border-color:#e6b9b3; color:#b5372a; border-radius:7px; }
.cv #rcTabla .rcBtnQuitar:hover { background:#fdecea; border-color:#dd4b39; }
.cv #rcTabla .rcBtnQuitar[disabled] { border-color:var(--cv-linea); color:#a9b6c2; background:#fff; }

.cv .rcMas { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.cv .rcMas .rcMasNota { flex:1 1 260px; font-size:13.5px; color:var(--cv-suave); }

.cv .rcCierre { display:flex; justify-content:flex-end; }
.cv .rcTotales { min-width:320px; border:1px solid var(--cv-linea); border-radius:10px; overflow:hidden; background:#fff; }
.cv .rcTotales > div { display:flex; justify-content:space-between; gap:16px; padding:8px 14px; border-bottom:1px solid #eef2f6; font-size:14.5px; }
.cv .rcTotales > div > span:last-child { font-weight:600; color:var(--cv-tinta); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cv .rcTotales > div:last-child { border-bottom:0; background:#16324a; color:#fff; font-size:18px; font-weight:700; padding:11px 14px; }
.cv .rcTotales > div:last-child > span:last-child { color:#fff; font-weight:700; }
.cv .rcAcciones .cvBtn[disabled] { opacity:.7; cursor:wait; }

.cv .rcResultado .cvHeroe > i { color:var(--cv-verde); }
.cv .rcResultado .rcRotuloNumero { font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--cv-suave); margin-top:10px; }
.cv .rcResultado .rcNumero { font-size:36px; line-height:1.15; font-weight:700; color:var(--cv-verde); font-variant-numeric:tabular-nums; }
.cv .rcResultado .rcDetalle { margin:8px auto 12px auto; font-size:16px; font-weight:600; color:var(--cv-tinta); }
.cv .rcResultado .rcResBotones { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }

/* MÓVIL: cada línea de la petición se pinta como una TARJETA apilada (la tabla de 7 columnas no cabe).
   El rótulo de cada campo sale del atributo data-rotulo de la celda. */
@media (max-width: 767px) {
  .cv #rcTabla > thead { display:none; }
  .cv #rcTabla, .cv #rcTabla > tbody, .cv #rcTabla > tbody > tr, .cv #rcTabla > tbody > tr > td { display:block; width:100%; }
  .cv #rcTabla { border:0; }
  .cv #rcTabla > tbody > tr { border:1px solid var(--cv-linea); border-radius:10px; margin-bottom:12px; padding:36px 12px 10px 12px; background:#fbfdff; position:relative; }
  .cv #rcTabla > tbody > tr.rcConError { background:#fdecea; border-color:#f3b4ad; }
  .cv #rcTabla > tbody > tr > td { border:0 !important; padding:5px 0 !important; background:transparent !important; white-space:normal; }
  .cv #rcTabla td.rcNum { position:absolute; top:8px; left:12px; width:auto; padding:0 !important; color:var(--cv-azul); font-weight:700; text-align:left; }
  .cv #rcTabla td.rcNum:before { content:"Línea "; }
  .cv #rcTabla td[data-rotulo]:before { content:attr(data-rotulo); display:block; font-size:11px; font-weight:600; color:var(--cv-suave); text-transform:uppercase; letter-spacing:.4px; margin-bottom:2px; }
  .cv #rcTabla td.rcImporte { text-align:left; font-size:16px; width:100%; }
  .cv #rcTabla td.rcQuitar { position:absolute; top:4px; right:8px; width:auto; padding:0 !important; }
  .cv #rcTabla select.form-control, .cv #rcTabla select.rcEspecialidad, .cv #rcTabla select.rcTalonarios { min-width:0; width:100%; }
  .cv #rcTabla .select2-container { min-width:0 !important; }
  .cv .rcTotales { width:100%; min-width:0; }
  .cv .rcMas #rcAnadir { width:100%; }
}

/* --- recetasPeticiones.php (Peticiones realizadas): tabla DataTables agrupada por petición --- */
.cv .rcAvisoProceso > i { margin-top:2px; }
.cv #rcCaja .dataTables_filter input { width:220px !important; max-width:100%; }
.cv #rcCaja .dataTables_length select { border:1px solid #c9d6e2; border-radius:6px; padding:4px 6px; margin:0 4px; }
.cv #rcCaja .dataTables_info { color:var(--cv-suave); font-size:13.5px; }
/* Si la ventana es estrecha, DataTables pliega las columnas secundarias en un detalle desplegable (+)
   y deja siempre a la vista el colegiado, el estado y los botones de descarga */
.cv #rcPeticiones { width:100% !important; }
.cv #rcPeticiones.dtr-inline.collapsed > tbody > tr[role=row] > td:first-child { padding-left:32px; }   /* sitio para el (+) */
.cv #rcPeticiones.dtr-inline.collapsed > tbody > tr[role=row] > td:first-child:before { top:50%; margin-top:-9px; left:6px; background-color:#1f6fa5; }
.cv #rcPeticiones.dtr-inline.collapsed > tbody > tr.rcGrupo > td:first-child:before { display:none; }
.cv #rcPeticiones.dtr-inline.collapsed > tbody > tr.rcGrupo > td:first-child { padding-left:12px; cursor:default; }
.cv #rcPeticiones > tbody > tr.child ul.dtr-details { display:block; }
.cv #rcPeticiones > tbody > tr.child ul.dtr-details > li { padding:5px 0; border-bottom-color:#eef2f6; }
.cv #rcPeticiones > tbody > tr.child span.dtr-title { min-width:110px; color:var(--cv-suave); font-weight:600; }
.cv #rcPeticiones td.rcEstado { min-width:118px; }
.cv #rcPeticiones thead th { background:#f4f7fa; color:var(--cv-suave); font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:.5px; border-top:0; border-bottom:1px solid var(--cv-linea); text-align:left; padding-top:10px; padding-bottom:10px; }
.cv #rcPeticiones thead th, .cv #rcPeticiones tbody td { padding-left:9px; }
.cv #rcPeticiones tbody td { vertical-align:middle; font-size:14px; text-align:left; border-top:1px solid #eef2f6; color:var(--cv-texto); }
.cv #rcPeticiones td.rcColegiado { min-width:200px; }
.cv #rcPeticiones td.rcDer, .cv #rcPeticiones th.rcDer { text-align:right; font-variant-numeric:tabular-nums; }
.cv #rcPeticiones td.rcCen, .cv #rcPeticiones th.rcCen { text-align:center; }
.cv #rcPeticiones td.rcDer, .cv #rcPeticiones td.rcCen .btn, .cv #rcPeticiones .rcTipo { white-space:nowrap; }
.cv #rcPeticiones tr.rcGrupo td { text-align:left; background:var(--cv-azul-claro); border-top:2px solid var(--cv-azul); color:var(--cv-tinta); font-size:13.5px; padding:9px 12px; }
.cv #rcPeticiones tr.rcGrupo:hover td { background:var(--cv-azul-claro); }
.cv #rcPeticiones tr.rcGrupo .rcGrupoNum { font-weight:700; font-size:15px; margin-right:14px; }
.cv #rcPeticiones tr.rcGrupo .rcGrupoDato { margin-right:16px; color:var(--cv-texto); }
.cv #rcPeticiones tr.rcGrupo .rcGrupoDato i { color:var(--cv-suave); }
.cv #rcPeticiones .rcCol { font-weight:600; color:var(--cv-tinta); }
.cv #rcPeticiones .rcColNum { color:var(--cv-suave); font-size:12.5px; }
.cv #rcPeticiones .rcEsp { color:var(--cv-azul); }
.cv #rcPeticiones .rcMini { display:block; font-size:12px; color:var(--cv-suave); margin-top:2px; }
.cv #rcPeticiones a.rcVerHistorico { display:block; font-size:12.5px; margin-top:4px; color:var(--cv-azul); white-space:nowrap; text-decoration:none; }
.cv #rcPeticiones a.rcVerHistorico:hover { color:#195d8b; text-decoration:underline; }
.cv .rcTipo { display:inline-block; border:1px solid var(--cv-linea); border-radius:20px; padding:1px 10px; font-size:12.5px; color:var(--cv-texto); background:var(--cv-fondo); }
/* estados: las etiquetas de Bootstrap que decide rcClaseEstado, con la paleta 2026 */
.cv #rcPeticiones .label { font-size:12.5px; font-weight:600; padding:3px 10px; border-radius:12px; display:inline-block; white-space:normal; line-height:1.3; text-align:left; }
.cv #rcPeticiones .label-success { background:var(--cv-verde-claro); color:#14663f; }
.cv #rcPeticiones .label-warning { background:var(--cv-ambar-claro); color:var(--cv-ambar); }
.cv #rcPeticiones .label-danger { background:#fdecea; color:#a12a1c; }
.cv #rcPeticiones .label-primary { background:var(--cv-azul-claro); color:var(--cv-azul); }
.cv #rcPeticiones .label-info { background:#eef2f6; color:var(--cv-texto); }
.cv #rcPeticiones .label-default { background:#fff; color:var(--cv-texto); border:1px solid #c9d6e2; }
/* botones de descarga, pago y anulación: los de Bootstrap de siempre (la clase disabled los sigue bloqueando), redondeados y con los colores 2026 */
.cv #rcPeticiones .btn-xs { border-radius:7px; padding:4px 10px; font-size:12.5px; font-weight:600; }
.cv #rcPeticiones .btn-success { background:#1e8e5a; border-color:#1e8e5a; } .cv #rcPeticiones .btn-success:hover { background:#18774b; border-color:#18774b; }
.cv #rcPeticiones .btn-primary { background:#1f6fa5; border-color:#1f6fa5; } .cv #rcPeticiones .btn-primary:hover { background:#195d8b; border-color:#195d8b; }
.cv #rcPeticiones .btn-default { background:#fff; border-color:#c9d6e2; color:var(--cv-tinta); }
/* ==== fin extra_X2 ==== */

/* ==== inicio extra_X3 ==== */
/* ==== inicio extra_X3 ==== */
/* =====================================================================
   Grupo X3 (portal de empresas: bolsa de empleo vista por la empresa) · añadidos a la capa de diseño 2026 · 05/10/2026
   Para incorporar al final de comv2026.css (las páginas no enlazan este fichero por separado).
   Páginas: ofertas, ofertasInscritos y nuevaOferta. Todo va bajo .cv y no pisa nada de lo que ya hay.
   ===================================================================== */
/* desplegable desactivado (País, hasta que se elige «Otro país» en Provincia) */
.cv .cvCampo select[disabled] { background:var(--cv-fondo); border-color:var(--cv-linea); color:#8b9aa8; cursor:not-allowed; }

/* editor de texto (CKEditor 4) dentro de un campo: mismo marco que el resto de campos */
.cv .cvCampo .cke_chrome { border-color:#c9d6e2; border-radius:8px; overflow:hidden; box-shadow:none; }
.cv .cvCampo .cke_top { border-bottom-color:var(--cv-linea); background:var(--cv-fondo); }

/* campo marcado como erróneo por jQuery Validate cuando es un área de texto o numérico */
.cv .cvCampo textarea.error, .cv .cvCampo input[type="number"].error { border-color:#dd4b39; box-shadow:0 0 0 3px rgba(221,75,57,.12); }

/* enlaces de contacto dentro de una tabla (inscritos en una oferta) */
.cv table.cvTabla tbody td a:not(.cvBtn) { color:var(--cv-azul); text-decoration:none; }
.cv table.cvTabla tbody td a:not(.cvBtn):hover { text-decoration:underline; }
/* ==== fin extra_X3 ==== */
/* ==== fin extra_X3 ==== */
/* ==== fin extra_X3 ==== */
/* ==== fin extra_X3 ==== */
