/*
 Theme Name: Hello Elementor Child
 Template: hello-elementor
 Text Domain: hello-elementor-child
*/

/* CONFIG GLOBAL – */
:root{
  --container-max: 1200px; /* el ancho de tu sitio (igual al del header) */
  --header-pad-left: 12px; /* micro-ajuste por el padding interno del header (.e-con-inner) */
  --site-gutter: 20px;     /* colchón mínimo en pantallas chicas */
}

/* Evitar estilos globales de Elementor */
.rhs-btn:hover,
.rhs-btn:focus,
.rhs-btn:active{
  background: inherit;
  color: inherit;
  box-shadow: none;
  outline: none;
}


/* SECCIÓN DEL SLIDER: Ancho completo y padding 0 en Elementor */

/* 1) Franja de contenido del slider alineada al header */
.hero-slider .swiper-slide-contents{
  /* cálculo: borde del contenedor centrado + padding real del header */
  padding-left:  max(var(--site-gutter),
                     calc(50vw - var(--container-max)/2 + var(--header-pad-left)));
  padding-right: max(var(--site-gutter),
                     calc(50vw - var(--container-max)/2 - var(--header-pad-left)));
  box-sizing: border-box;
  text-align: left;
  position: relative;
  z-index: 3;
}

/* 2) (Opcional) limitar el bloque interior si Elementor mete un wrapper extra */
.hero-slider .elementor-slide-content{
  max-width: var(--container-max);
  margin: 0 auto;
}

/* 3) Centrado vertical y alineado a la izquierda dentro del slide */
.hero-slider .swiper-slide-inner{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
	padding: 0;
}


/* 5) Puntos (opcional) */
.hero-slider .swiper-pagination-bullet{ background: rgba(255,255,255,.7); opacity: 1; }
.hero-slider .swiper-pagination-bullet-active{ background: #fff; }


/*Ocultar flecha izquierda y derecha del slider */
.elementor-swiper-button,
.elementor-swiper-button-prev,
.elementor-swiper-button-next {
    display: none !important;
   /* visibility: hidden !important;
    opacity: 0 !important;*/
}

@media(min-width:1250px){
	.elementor-swiper-button,
  .elementor-swiper-button-prev,
	.elementor-swiper-button-next {
			display: block !important;	
	}

}



/* ============================
   CONTENEDOR GENERAL - CONVOCATORIAS
   ============================ */
.convocatorias-wrapper {
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 16px;
    overflow-x: auto;
    font-family: inherit;
}

/* ============================
   TABLA CON ESTILO "TARJETA"
   ============================ */
.convocatorias-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 16px;       /* separa las filas como tarjetas */
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    font-size: 14px;
}

/* CABECERA (tipo pestañas redondeadas) */
.convocatorias-table thead th {
    background: #0074c7;
    color: #ffffff;
    padding: 14px 24px;
    text-align: center;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    white-space: nowrap;
    border: none;
}

.convocatorias-table thead tr th:first-child {
    border-radius: 20px 0 0 20px;
}

.convocatorias-table thead tr th:last-child {
    border-radius: 0 20px 20px 0;
}

/* FILAS COMO TARJETAS */
.convocatorias-table tbody tr {
    background: #ffffff;
    /*box-shadow: 0 10px 25px rgba(0,0,0,.05);*/
    transition: background .2s ease, transform .15s ease, box-shadow .15s ease;
}

/* Borde verde alrededor de cada tarjeta */
.convocatorias-table tbody td {
    padding: 18px 20px;
    border-top: 2px solid #00a779;
    border-bottom: 2px solid #00a779;
    border-right: 2px solid #00a779;
    border-left: 0;
    vertical-align: middle;
}

.convocatorias-table tbody td:first-child {
    border-left: 2px solid #00a779;
    border-radius: 24px 0 0 24px;
}

.convocatorias-table tbody td:last-child {
    border-radius: 0 24px 24px 0;
}

/* Hover tipo fila activa */
.convocatorias-table tbody tr:hover {
    background: #00a779;
    transform: translateY(-2px);
    /*box-shadow: 0 14px 30px rgba(0,0,0,.18);*/
}

.convocatorias-table tbody tr:hover .col-convocatoria,
.convocatorias-table tbody tr:hover .col-denominacion {
    color: #ffffff;
}

/* Si el SVG lo permite, lo vuelve blanco en hover */
.convocatorias-table tbody tr:hover .conv-pdf-icon {
    filter: brightness(0) invert(1);
}

/* ============================
   COLUMNAS ESPECÍFICAS
   ============================ */

/* Convocatoria (número) */
.convocatorias-table .col-convocatoria {
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
    color: #0f172a;
}

/* Denominación */
.convocatorias-table .col-denominacion {
    font-size: 14px;
    line-height: 1.5;
    color: #111827;
}

/* Columnas PDFs */
.convocatorias-table .col-pdfs {
    text-align: center;
    min-width: 120px;
}

/* Contenedores de íconos (por cada tipo) */
.conv-bases-ficha,
.conv-comunicados,
.conv-fe-erratas,
.conv-resultado-preliminar,
.conv-resultado-final {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

/* Enlaces + iconos PDF */
.conv-pdf-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    padding: 2px;
    border-radius: 10px;
    transition: transform .15s ease, box-shadow .15s ease;
}

.conv-pdf-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(0,0,0,.12);
}

.conv-pdf-icon {
    display: block;
    width: 30px;
    height: auto;
}

/* ============================
   RESPONSIVE
   ============================ */
@media (max-width: 768px) {
    .convocatorias-table thead th {
        font-size: 12px;
        padding: 10px 8px;
    }

    .convocatorias-table tbody td {
        padding: 12px 10px;
        font-size: 13px;
    }

    .conv-pdf-icon {
        width: 34px;
    }
}







/* =============================================================
   ESTILOS PANEL DE GESTIÓN RHS 
   ============================================================= */

#rhs-gestion-master {
    --rhs-primary: #0070bc;
    --rhs-primary-dark: #005a9e;
    --rhs-success: #10b981;
    --rhs-danger: #ef4444;
    --rhs-text: #1f2937;
    --rhs-muted: #6b7280;
    --rhs-border: #e5e7eb;
    --rhs-bg-light: #f9fafb;
    --rhs-white: #ffffff;
    
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--rhs-text);
    position: relative;
    max-width: 100%;
    line-height: 1.5;
}

#rhs-gestion-master * { box-sizing: border-box; }

/* 2. LOADER */
#rhs-gestion-master .rhs-overlay-loader {
    position: absolute; top:0; left:0; width:100%; height:100%;
    background: rgba(255,255,255,0.95); z-index: 100;
    display: none; flex-direction: column; align-items: center; justify-content: center;
    border-radius: 8px;
}
#rhs-gestion-master .rhs-spinner {
    width: 40px; height: 40px; border: 3px solid #e5e7eb;
    border-top-color: var(--rhs-primary); border-radius: 50%;
    animation: rhs-spin 0.8s linear infinite; margin-bottom: 10px;
}
#rhs-gestion-master .rhs-loader-text { font-size: 13px; color: var(--rhs-muted); }
@keyframes rhs-spin { to{transform:rotate(360deg);} }

/* 3. CABECERA */
#rhs-gestion-master .rhs-header { margin-bottom: 25px; padding-left: 4px; }
#rhs-gestion-master .rhs-title { font-size: 24px; font-weight: 700; color: var(--rhs-text); margin: 0 0 5px 0; }
#rhs-gestion-master .rhs-meta { font-size: 14px; color: var(--rhs-muted); margin: 0; }

/* 4. FEEDBACK */
#rhs-gestion-master .rhs-feedback {
    padding: 12px 16px; margin-bottom: 20px; border-radius: 6px; font-size: 14px; border-left: 4px solid;
}
#rhs-gestion-master .rhs-feedback--success { background: #ecfdf5; color: #065f46; border-color: var(--rhs-success); }
#rhs-gestion-master .rhs-feedback--error { background: #fef2f2; color: #991b1b; border-color: var(--rhs-danger); }

/* 5. TABS */
#rhs-gestion-master .rhs-nav-tabs { display: flex; gap: 5px; margin-bottom: 0; border-bottom: none; }
#rhs-gestion-master .rhs-tab-item {
    background: transparent; border: none; padding: 12px 20px;
    font-size: 14px; font-weight: 600; color: var(--rhs-muted);
    cursor: pointer; border-radius: 6px 6px 0 0; transition: all 0.2s ease;
    display: flex; align-items: center; gap: 8px;
}
#rhs-gestion-master .rhs-tab-item:hover { color: var(--rhs-primary); background: rgba(0,0,0,0.03); }
#rhs-gestion-master .rhs-tab-item.active {
    background: var(--rhs-white); color: var(--rhs-primary);
    border: 1px solid var(--rhs-border); border-bottom: 1px solid var(--rhs-white); /* Tapa el borde inferior */
    margin-bottom: -1px; position: relative; z-index: 2;
}


/* 6. TARJETA BLANCA */
#rhs-gestion-master .rhs-card-container {
    background: var(--rhs-white); border: 1px solid var(--rhs-border);
    border-radius: 0 8px 8px 8px; padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

/* =====================================================
   FIX DEFINITIVO: 
   ===================================================== */
#rhs-gestion-master .rhs-view-panel{
  display: none;           /* simple y estable */
}

#rhs-gestion-master .rhs-view-panel.active-panel{
  display: block;          /* muestra solo el activo */
}


/* 7. TOOLBAR */
#rhs-gestion-master .rhs-toolbar {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 25px; gap: 15px; flex-wrap: wrap;
    background: #fff; padding: 0; border: none; /* Limpio, sin fondo gris */
}

/* Buscador */
#rhs-gestion-master .rhs-search-group { position: relative; flex: 1; max-width: 350px; }
#rhs-gestion-master .rhs-form-control {
    width: 100%; height: 42px; padding: 0 15px 0 40px;
    border: 1px solid #e5e7eb; border-radius: 6px;
    font-size: 14px; background: #fff; color: #333;
    transition: border-color 0.2s; box-shadow: none;
}
#rhs-gestion-master .rhs-form-control:focus { border-color: var(--rhs-primary); outline: none; }
#rhs-gestion-master .rhs-search-icon-svg {
    position: absolute; left: 12px; top: 11px; width: 20px; height: 20px; color: #9ca3af;
}

/* Botones */
#rhs-gestion-master .rhs-btn {
    display: inline-flex; align-items: center; gap: 8px; padding: 0 20px;
    height: 42px; border-radius: 6px; font-size: 14px; font-weight: 600;
    text-decoration: none; cursor: pointer; border: none;
    transition: background-color 0.2s; white-space: nowrap;
}
#rhs-gestion-master .rhs-btn-primary { background-color: var(--rhs-primary); color: #fff; }
#rhs-gestion-master .rhs-btn-primary:hover { background-color: var(--rhs-primary-dark); color: #fff; }
#rhs-gestion-master .rhs-btn-icon-svg { width: 18px; height: 18px; }
#rhs-gestion-master .rhs-link-reset { font-size: 13px; color: var(--rhs-danger); text-decoration: underline; margin-right: 15px; }

/* 8. TABLA (LIMPIEZA TOTAL DE BORDES Y ZEBRA) */
#rhs-gestion-master .rhs-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--rhs-border);
    border-radius: 8px;
    background: #fff;
}
#rhs-gestion-master .rhs-data-table {
    width: 100%; border-collapse: collapse; margin: 0; font-size: 14px;
    background-color: #ffffff; /* Fondo blanco forzado */
}
#rhs-gestion-master .rhs-data-table th {
    background: var(--rhs-bg-light); color: #6b7280; font-weight: 700;
    font-size: 11px; text-transform: uppercase; padding: 16px 24px;
    border-bottom: 1px solid var(--rhs-border); text-align: left;
    border-top: none; border-left: none; border-right: none;
}
#rhs-gestion-master .rhs-data-table td {
    padding: 16px 24px;
    border-bottom: 1px solid var(--rhs-border);
    color: var(--rhs-text); vertical-align: middle;
    background-color: #ffffff; /* ¡IMPORTANTE: anula las rayas */
    border-left: none; border-right: none;
}
/* Eliminar zebra styles de temas externos */
#rhs-gestion-master .rhs-data-table tr:nth-child(even) td,
#rhs-gestion-master .rhs-data-table tr:nth-child(odd) td {
    background-color: #ffffff !important; 
}
#rhs-gestion-master .rhs-data-table tr:last-child td { border-bottom: none; }
#rhs-gestion-master .rhs-data-table tr:hover td { background-color: #fcfcfc !important; }

/* 9. BADGES Y ACCIONES */
#rhs-gestion-master .rhs-badge {
    display: inline-block; padding: 4px 10px; border-radius: 50px;
    font-size: 11px; font-weight: 700; text-transform: uppercase;
}
#rhs-gestion-master .rhs-badge--success { background: #ecfdf5; color: #047857; }
#rhs-gestion-master .rhs-badge--neutral { background: #f3f4f6; color: #374151; }

#rhs-gestion-master .rhs-action-group { display: flex; justify-content: flex-end; gap: 8px; }
#rhs-gestion-master .rhs-icon-btn {
    width: 32px; height: 32px; display: inline-flex;
    align-items: center; justify-content: center;
    border: 1px solid transparent; background: transparent;
    color: var(--rhs-muted); border-radius: 4px; cursor: pointer;
    transition: all 0.2s; padding: 0; margin: 0;
}
#rhs-gestion-master .rhs-icon-btn:hover { background: #eff6ff; color: var(--rhs-primary); }
#rhs-gestion-master .rhs-btn-danger:hover { background: #fef2f2; color: var(--rhs-danger); }

/* 10. PAGINACIÓN */
#rhs-gestion-master .rhs-pagination-area {
    margin-top: 25px; display: flex; justify-content: center; gap: 5px;
}
#rhs-gestion-master .rhs-pagination-area .page-numbers {
    padding: 6px 12px; background: var(--rhs-white);
    border: 1px solid var(--rhs-border); border-radius: 4px;
    color: var(--rhs-text); text-decoration: none; font-size: 14px;
}
#rhs-gestion-master .rhs-pagination-area .page-numbers.current {
    background: var(--rhs-primary); color: var(--rhs-white); border-color: var(--rhs-primary);
}

/* Utilidades */
#rhs-gestion-master .fw-bold { font-weight: 700; }
#rhs-gestion-master .text-muted { color: var(--rhs-muted); }
#rhs-gestion-master .rhs-empty-message { text-align: center; padding: 40px; color: #9ca3af; }
#rhs-gestion-master .rhs-text-truncate {
    max-width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}



 /* 1. Botón Registrar */
    .rhs-doc-form-body .af-submit,
    .rhs-doc-form-body .acf-form-submit {
        display: block !important;
        position: static !important;
        text-align: right !important;
        margin-top: 20px !important;
        margin-bottom: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        clear: both;
    }
    
    .rhs-doc-form-body .af-submit button,
    .rhs-doc-form-body .acf-form-submit button {
        display: inline-block !important;
        margin: 0 !important;
        float: none !important;
    }

    /* 2. Botón Cancelar  */
    .rhs-doc-form-footer {
        display: block !important;
        position: relative !important;
        text-align: right !important;
        margin-top: -42px !important;
        padding-right: 140px !important;
        z-index: 50;
        pointer-events: none;
    }

    .rhs-doc-form-footer .rhs-btn {
        pointer-events: auto !important;
        display: inline-block !important;
    }

    /* 3. Estética Unificada */
    .rhs-btn, 
    .af-submit button,
    .acf-form-submit button {
        height: 42px !important;
        min-width: 110px !important;
        padding: 0 20px !important;
        font-size: 15px !important;
        border-radius: 5px !important;
        cursor: pointer;
        line-height: 1 !important;
    }

    /* 4. Ajuste del contenedor principal */
    .rhs-doc-form-card {
        padding-bottom: 20px !important;
        overflow: visible !important;
    }




/* ================================
   DETALLE DE CONVOCATORIA – ESTILO
   ================================ */

.conv-detalle {
    max-width: 1100px;
    margin: 40px auto 80px;
    padding: 0 16px;
}

.conv-detalle__card {
    background: #fff;
    border-radius: 18px;
    padding: 28px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 18px 45px rgba(15,23,42,0.08);
}

/* ENCABEZADO */
.conv-detalle__badge {
    display: inline-block;
    padding: 3px 10px;
    background: #e0edff;
    color: #1d4ed8;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.conv-detalle__title {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 6px;
    color: #111827;
}

.conv-detalle__subtitle {
    font-size: .95rem;
    color: #4b5563;
    margin: 0 0 20px;
}

/* GRID */
.conv-detalle__grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 32px;
}

@media(max-width:768px){
    .conv-detalle__grid { grid-template-columns: 1fr; }
}

/* INFO */
.conv-detalle__section-title {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 14px;
}

.conv-detalle__info-item {
    margin-bottom: 12px;
}

.conv-detalle__info-label {
    font-size: .84rem;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 2px;
}

.conv-detalle__info-value {
    font-size: .95rem;
    font-weight: 600;
    color: #1f2937;
}

/* DOCUMENTOS */
.conv-detalle__docs-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.conv-detalle__docs-item {
    padding: 12px 0;
    border-bottom: 1px solid #e5e7eb;
}

.conv-detalle__docs-label {
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: 6px;
    display: block;
    color: #111827;
}

.conv-detalle__docs-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* BOTÓN PDF */
.conv-detalle__doc-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid #16a34a;
    font-size: .84rem;
    background: #f0fdf4;
    color: #166534;
    text-decoration: none;
    transition: .2s ease;
}

.conv-detalle__doc-link:hover {
    background: #16a34a;
    color: #fff;
    transform: translateY(-1px);
}



/* -------- TARJETA DEL FORMULARIO DE DOCUMENTOS -------- */
.rhs-doc-form-card {
  background: #ffffff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  padding: 32px 40px 28px;
  margin-top: 24px;
}

/* Cabecera del formulario */
.rhs-doc-form-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.rhs-doc-form-title-group {
  display: flex;
  align-items: center;
  gap: 14px;
}

.rhs-doc-form-title {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 4px;
  color: #111827;
}

.rhs-doc-form-subtitle {
  margin: 0;
  font-size: 14px;
  color: #6b7280;
}



/* -------- CAMPOS DEL FORMULARIO (Advanced Forms) -------- */
#rhs-doc-form-view .rhs-doc-form-card {
    width: 98% !important;
    margin: 0 auto !important;
	border: none !important;
}


/* 1. INPUTS, SELECTS Y SELECT2 (Altura Estándar 38px) */
.rhs-doc-form-body form input:not([type="submit"]):not([type="file"]),
.rhs-doc-form-body form select,
.rhs-doc-form-body .select2-selection {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    border: 1px solid #ced4da !important;
    border-radius: 5px !important;
    font-size: 14px !important;
    width: 100% !important;
    background-color: #fff !important;
    box-shadow: none !important;
    color: #333 !important;
    display: flex !important;
    align-items: center !important;
}

/* Ajuste interno para Select2 */
.rhs-doc-form-body .select2-selection__rendered { line-height: 36px !important; padding-left: 0 !important; }
.rhs-doc-form-body .select2-selection__arrow { height: 36px !important; }

/* Excepciones: Textarea y File */
.rhs-doc-form-body form textarea { min-height: 100px; padding: 10px !important; border: 1px solid #ced4da !important; border-radius: 5px !important; width: 100%; }
.rhs-doc-form-body form input[type="file"] { padding: 6px !important; height: auto !important; border: 1px solid #ced4da !important; width: 100%; border-radius: 5px; }
.rhs-doc-form-body form label { font-weight: 600; font-size: 14px; margin-bottom: 5px; color: #111827; }

/* 2. BOTONES (Alineación Horizontal + Altura 38px) */

/* Botón Registrar (Azul) - Base de alineación */
.rhs-doc-form-body .af-submit {
    display: block !important; position: static !important; text-align: right !important;
    margin: 20px 0 0 0 !important; width: 100% !important; padding: 0 !important; clear: both;
}
.rhs-doc-form-body .af-submit button {
    background: #0d6efd !important; color: #fff !important; border: none !important;
    height: 38px !important; padding: 0 25px !important; border-radius: 999px !important;
    cursor: pointer; font-size: 14px !important; font-weight: 600 !important;
}

/* Botón Cancelar (Rojo)  */
.rhs-doc-form-footer {
    position: relative !important; text-align: right !important;
    margin-top: -38px !important; 
    padding-right: 140px !important; 
    z-index: 50; pointer-events: none;
}
.rhs-doc-form-footer .rhs-btn {
    pointer-events: auto !important; background: #fff !important; color: #dc3545 !important;
    border: 1px solid #dc3545 !important; height: 38px !important;
    padding: 0 20px !important; border-radius: 999px !important;
    cursor: pointer; font-size: 14px !important; font-weight: 600 !important;
    display: inline-flex !important; align-items: center; justify-content: center;
}
.rhs-doc-form-footer .rhs-btn:hover { background: #dc3545 !important; color: #fff !important; }
.rhs-doc-form-card { padding-bottom: 20px !important; overflow: visible !important; }


/* Estilos Profesionales para Feedback */
.rhs-alert-box {
    display: flex;
    align-items: center;
    padding: 16px;
    margin-bottom: 20px;
    border-radius: 8px;
    font-family: sans-serif;
    animation: slideDown 0.4s ease-out;
}
.rhs-alert-box.success {
    background-color: #ecfdf5; 
    border: 1px solid #10b981; 
    color: #065f46;
}
.rhs-alert-icon { margin-right: 12px; display: flex; }
.rhs-alert-content { flex-grow: 1; font-size: 14px; }
.rhs-alert-close {
    background: none; border: none; font-size: 20px; cursor: pointer; color: inherit; opacity: 0.7;
}
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* tamaño del logo */
.rhs-login-right img{
  width: 100% !important;
  max-width: 240px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto 14px !important;
}







/* =====================
   LOGIN FORMULARIO RSHS – MOBILE FIRST
   ===================== */

/* ===== PAGE ===== */
.rhs-login-page{
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  background: #f4f6f9;
  overflow: hidden;
}

/* ===== CARD (BASE: MÓVIL) ===== */
.rhs-login-container{
  width: 100%;
  max-width: 520px;       
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 60px rgba(0,0,0,.18);
  font-family: system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  display: grid;
  grid-template-columns: 1fr; /* 1 columna por defecto */
}

/* En móvil normalmente ocultamos el panel izquierdo */
.rhs-login-left{
  display: none; /* base móvil */
  background: linear-gradient(180deg,#178fcd 0%,#0a6ea7 100%);
  color: #fff;
  align-items: center;
  padding: 60px 54px;
}

.rhs-login-title{margin:0 0 16px;font-size:32px;line-height:1.2;font-weight:700; text-align:center}
.rhs-login-subtitle{margin:0 0 26px;font-size:16px;line-height:1.7;opacity:.95;}
.rhs-login-caption{margin:0;font-size:15px;font-weight:600;opacity:.92;}

/* Panel derecho: base móvil */
.rhs-login-right{
  padding: 34px 22px;        
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
}

.rhs-login-logo{text-align:center;}
.rhs-login-logo img{max-width:170px;height:auto;display:inline-block;}

.rhs-login-header h2{
  margin: 0 0 12px;
  text-align: center;
  font-size: 18px;          
  font-weight: 700;
  color: #0b4f7c;
}

.rhs-login-form{display:flex;flex-direction:column;gap:12px;}
.rhs-login-label{font-size:14px;font-weight:700;color:#2f2f2f;margin-top:6px;}

.rhs-login-input{
  width:100% !important;
  padding:14px 16px !important;
  border-radius:10px !important;
  border:1px solid #d9dde3 !important;
  font-size:15px !important;
  background:#fff !important;
  outline:none !important;
}
.rhs-login-input:focus{
  border-color:#0d6efd !important;
  box-shadow:0 0 0 3px rgba(13,110,253,.15) !important;
}

.rhs-login-btn{
  width:100% !important;
  margin-top:10px !important;
  padding:14px 16px !important;
  border-radius:10px !important;
  background:#0d6efd !important;
  border:0 !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:700 !important;
  cursor:pointer !important;
}
.rhs-login-btn:hover{background:#0b5ed7 !important;}

.rhs-login-note{margin-top:18px;text-align:center;color:#6c757d;font-size:13px;line-height:1.5;}
.rhs-login-error{padding:12px 14px;border-radius:10px;background:#fdecec;border:1px solid #f5c2c7;color:#b42318;font-size:14px;}


/* =====================
   DESKTOP (desde 992px en adelante)
   ===================== */
@media (min-width: 992px){

  .rhs-login-page{
    padding: 32px 20px;
  }

  .rhs-login-container{
    max-width: 1200px;        
    min-height: 560px;
    grid-template-columns: 1fr 1fr; /* 2 columnas */
  }

  .rhs-login-left{
    display: flex;            
  }

  .rhs-login-right{
    padding: 55px 60px;       
  }

  .rhs-login-header h2{
    font-size: 18px;
  }

  .rhs-login-title{
    font-size: 38px;
  }
}


.rhs-login-back{
  text-align:center;
  color:#000;
  text-decoration:none;
  font-size:14px;
}


/* ==========================================
   MENÚ USUARIO (icono + tarjeta)
   ========================================== */

.menu-usuario{ position:relative; display:inline-flex; align-items:center; }

/* Botón icono (en barra) */
.menu-usuario .rhs-userdd__btn--icon{
  border:0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  line-height: 1;
}

/* Icono verde */
.menu-usuario .rhs-userdd__iconbox{
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #00b398;
  display:flex;
  align-items:center;
  justify-content:center;
}
.menu-usuario .rhs-userdd__iconbox svg{
  width: 20px;
  height: 20px;
  color:#fff;
  display:block;
}

/* Dropdown tarjeta */
.menu-usuario .rhs-userdd__menu{
  position:absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 220px;
  background:#fff;
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 16px 34px rgba(0,0,0,.18);
  display:none;
  z-index:99999;
}
.menu-usuario.is-open .rhs-userdd__menu{ display:block; }

/* Encabezado tarjeta */
.menu-usuario .rhs-userdd__head{
  padding: 6px 4px 12px 4px;
}
.menu-usuario .rhs-userdd__title{
  font-size: 16px;
  font-weight: 700;
  color:#111827;
  line-height: 1.2;
}
.menu-usuario .rhs-userdd__sub{
  margin-top: 6px;
  font-size: 16px;
  font-weight: 600;
  color:#64748b;
}

/* Botón Salir */
.menu-usuario .rhs-userdd__item--logout{
  display:flex;
  align-items:center;
  gap:12px;
  padding: 10px;
  border-radius: 12px;
  background: #fde7ef;
  color: #ef4444;
  font-weight: 600;
  font-size: 16px;
  text-decoration:none;
}
.menu-usuario .rhs-userdd__item--logout svg{
  width: 22px;
  height: 22px;
  display:block;
}
.menu-usuario .rhs-userdd__item--logout:hover{
  filter: brightness(.98);
}




/* ==============================================
   RHS – BOTÓN LOGIN (NO LOGUEADO)
   ============================================== */

header .rhs-icon--login{
  display: flex;
  align-items: center;
}

/* Contenedor tipo badge */
header .rhs-icon--login .rhs-icon__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background-color: #00b398;      
  border-radius: 50%;            
  color: #ffffff !important;     
  text-decoration: none !important;
}

header .rhs-icon--login .rhs-icon__link:hover{
  background-color: #0071c0;      
}

/* SVG */
header .rhs-icon--login svg{
  width: 20px;
  height: 20px;
  fill: currentColor;
  display: block;
}

