@charset "utf-8";
/* =================================================================
   ESTILOS GLOBALES — inmopc
   Hoja de estilos global para estructurar todas las pantallas.
   Usar estas clases en lugar de estilos inline.
   ================================================================= */

/* Evita que Bootstrap desplace el contenido al abrir un modal: al ocultar
   la barra de scroll del body añade un padding-right para compensar el
   hueco, lo que empuja la cabecera/botones hacia la izquierda. */
body.modal-open {
    padding-right: 0 !important;
}

/* =================================================================
   VARIABLES GLOBALES
   ================================================================= */
:root {
    --font-principal: 'Plus Jakarta Sans', sans-serif;

    /* Color principal de las cabeceras de panel/widget */
    --color-cabecera: #337ab7;
    --color-cabecera-fin: #337ab7;
    --color-cabecera-texto: #ffffff;
    --color-numero-badge: #006eff;
    --color-fondo-badge: #006eff28;

    /* Sombra de tarjeta */
    --sombra-panel: 0 2px 12px rgba(51, 122, 196, 0.13);

    /* Radio de bordes */
    --radio-panel: 12px;
}


/* =================================================================
   ETIQUETAS DE TÍTULO — jerarquía de cabeceras de ficha

   etiqueta-titulo  → título principal de página (h1): "Ficha Inmueble REF"
   etiqueta-menu    → barra azul de sección: "DATOS INMUEBLE", "ACTIVIDAD"...
   etiqueta-titulo2 → subtítulo de ficha: "Piso en venta en Madrid - REF123"

   El color se controla con variables; el azul por defecto usa --color-cabecera.
   Para cambiar el color en un elemento concreto: style="--et-color:#fff"
   ================================================================= */

/* Título principal de página */
.etiqueta-titulo {
    font-size: 26px !important;
    font-family: var(--font-principal) !important;
    color: var(--et-color, var(--color-cabecera)) !important;
    line-height: 1.2 !important;
}

.etiqueta-titulo i {
    color: var(--et-color, var(--color-cabecera)) !important;
    margin-right: 8px !important;
}

/* Barra de sección secundaria — cabeceras de sidebar: Ubicación, Portales, Características...
   Más compacta que etiqueta-menu. Color vía --etiqueta-menu2-color. */
.etiqueta-menu2 {
    background-color: var(--etiqueta-menu2-color, var(--color-cabecera)) !important;
    color: #ffffff !important;
    padding: 10px 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    font-family: var(--font-principal) !important;
}

.etiqueta-menu2 i,
.etiqueta-menu2 span {
    color: #ffffff !important;
}


/* Barra de menú/sección — fondo azul + texto blanco en mayúsculas */
.etiqueta-menu {
    background: linear-gradient(135deg, var(--color-cabecera) 0%, var(--color-cabecera-fin) 100%) !important;
    color: #ffffff !important;
    padding: 11px 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-family: var(--font-principal) !important;
}

.etiqueta-menu i {
    color: #ffffff !important;
}

/* Subtítulo de ficha: "Piso en venta en Ciudad - REF" */
.etiqueta-titulo2 {
    font-size: 22px !important;
    font-weight: 700 !important;
    font-family: var(--font-principal) !important;
    color: var(--et2-color, #334155) !important;
    line-height: 1.3 !important;
}


/* =================================================================
   TEXTO PANEL IZQUIERDO — panel-izq-texto
   Clase para las etiquetas de navegación del panel lateral izquierdo:
   "DATOS INMUEBLE", "DATOS INTERNOS", "DATOS ECONÓMICOS", etc.
   Color controlado con --panel-izq-texto-color (por defecto hereda del td).
   ================================================================= */
.panel-izq-texto {
    font-size: 13px !important;
    font-family: var(--font-principal) !important;
    color: var(--panel-izq-texto-color, inherit) !important;
    padding-left: 4px !important;
}


/* =================================================================
   PANEL / WIDGET
   Tarjeta con sombra que envuelve cabecera + contenido.

   Uso:
   <div class="panel-widget">
       <div class="panel-cabecera">
           <div>
               <div class="panel-titulo">Notas de Escritorio</div>
               <div class="panel-subtitulo">Últimos 15 días</div>
           </div>
           ... acciones a la derecha ...
       </div>
       <div class="panel-cuerpo"> ... </div>
   </div>
   ================================================================= */

.panel-widget {
    border-radius: var(--radio-panel) !important;
    box-shadow: var(--sombra-panel) !important;
    overflow: hidden !important;
}

/* Dos tarjetas apiladas una debajo de otra no deben tocarse. Solo aplica
   cuando hay un panel inmediatamente detrás de otro, asi que no afecta a
   los paneles sueltos ni a los que van dentro de columnas Bootstrap. */
.panel-widget + .panel-widget {
    margin-top: 15px;
}

/* Fila Provincia / Delegado / Google Calendar (datosUsuarioView.php) —
   el contenedor de la fila ya es flex con align-items:stretch, pero eso
   solo estira la columna Bootstrap; la tarjeta (.panel-widget) de dentro
   sigue midiendo su propio contenido, así que las tres no acababan a la
   misma altura. Aquí la tarjeta hereda el 100% de esa columna ya estirada. */
.fila-provincia-delegado-calendar > [class*="col-"] > .panel-widget {
    height: 100%;
}

/* -----------------------------------------------------------------
   CABECERA del panel — barra superior azul
   ----------------------------------------------------------------- */
.panel-cabecera {
    background-color: var(--color-cabecera) !important;
    color: var(--color-cabecera-texto) !important;
    border-radius: var(--radio-panel) var(--radio-panel) 0 0 !important;
    padding: 8px 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    font-family: var(--font-principal) !important;
}

/* Título principal de la cabecera */
.panel-titulo {
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px !important;
    color: var(--color-cabecera-texto) !important;
    font-family: var(--font-principal) !important;
}

/* Subtítulo / rango de fechas bajo el título */
.panel-subtitulo {
    font-size: 10px !important;
    font-weight: 400 !important;
    opacity: 0.85 !important;
    margin-top: 1px !important;
    color: var(--color-cabecera-texto) !important;
    font-family: var(--font-principal) !important;
}

/* -----------------------------------------------------------------
   CUERPO del panel — zona blanca bajo la cabecera
   ----------------------------------------------------------------- */
.panel-cuerpo {
    border-radius: 0 0 var(--radio-panel) var(--radio-panel) !important;
    overflow: hidden !important;
    background-color: #ffffff !important;
}


/* =================================================================
   PANEL DE LISTADO / BÚSQUEDA LATERAL
   Clases para el panel izquierdo de búsqueda de listados.
   ================================================================= */

/* Título principal del panel (ej: "INMUEBLES") */
.listadoTitulo {
    font-size: 1.5em !important;
    font-weight: 800 !important;
    font-family: var(--font-principal) !important;
}

/* Texto dinámico bajo el título (ej: resultado búsqueda, últimos dados de alta...) */
.listadoAviso {
    font-size: 15px !important;
    font-weight: 700 !important;
    font-family: var(--font-principal) !important;
    color: var(--color-cabecera) !important;
}

/* Etiquetas negrita de filtros (Dirección, Código, MLS, Oficina, Mostrar...) */
.listadoNegrita {
    font-size: 14px !important;
    font-weight: 700 !important;
    font-family: var(--font-principal) !important;
    color: #333 !important;
    margin: 0 !important;
}

/* Inputs, selects y campos de texto de los filtros */
.listadoTexto {
    font-size: 13px !important;
    font-family: var(--font-principal) !important;
    color: #333 !important;
}


/* =================================================================
   ETIQUETAS DE CAMPO — labels y valores de datos en fichas

   etiqueta-gris          → nombre del campo en gris pequeño (Dirección, Población...)
   etiqueta-gris-mayuscula → igual pero en mayúsculas
   etiqueta-negrita       → valor del campo en negrita (el dato en sí)

   Uso:
   <div class="etiqueta-gris">Dirección</div>
   <div class="etiqueta-negrita">Calle Mayor 12, Madrid</div>
   ================================================================= */

.etiqueta-gris {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    font-family: var(--font-principal) !important;
    letter-spacing: 0.04em !important;
    margin-bottom: 2px !important;
}

.etiqueta-gris-mayuscula {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    font-family: var(--font-principal) !important;
    letter-spacing: 0.04em !important;
    margin-bottom: 2px !important;
    text-transform: uppercase !important;
}

/* Línea separadora con texto gris en mayúsculas y línea a la derecha
   Uso: <div class="linea-separadora">SECCIÓN</div>
   Resultado: SECCIÓN ─────────────────────────────── */
.linea-separadora {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    color: #94a3b8 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    font-family: var(--font-principal) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    margin: 12px 0 8px 0 !important;
    gap: 8px !important;
    border: none !important;
}

.linea-separadora::after {
    content: '' !important;
    flex: 1 !important;
    height: 1px !important;
    background-color: #e2e8f0 !important;
}

.etiqueta-negrita {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    font-family: var(--font-principal) !important;
    line-height: 1.4 !important;
}

/* Valor/importe destacado — negrita en azul principal. Para precios, totales, importes. */
.etiqueta-valor {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--color-cabecera) !important;
    font-family: var(--font-principal) !important;
    line-height: 1.4 !important;
}


/* =================================================================
   SEPARADOR DE SECCIÓN
   Línea fina con título a la izquierda y acción opcional a la derecha.

   Uso:
   <div class="separador-seccion">
       <span class="separador-seccion__titulo">DISTRIBUCIÓN</span>
       <div class="separador-seccion__linea"></div>
       <button ...></button>   ← opcional
   </div>
   ================================================================= */

.separador-seccion {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 28px 0 18px !important;
}

.separador-seccion__titulo {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #94a3b8 !important;
    font-family: var(--font-principal) !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

.separador-seccion__linea {
    flex: 1 !important;
    height: 1px !important;
    background-color: #e2e8f0 !important;
}


/* =================================================================
   CLASES DE CAMPO — modo vista de formularios (datosInmueble y similares)

   fichanegrita → etiqueta encima del dato: Tipo, Operación, Referencia, Precio...
                  Pequeña, azul, mayúsculas, con letra espaciada.
   fichatexto   → dato debajo de la etiqueta: el valor real del campo.
                  Más grande, oscuro, legible.

   Uso:
   <label class="fichanegrita">Tipo</label>
   <div class="fichatexto campo-vista">Piso</div>
   ================================================================= */

/* Etiqueta de campo — negrita negra */
.fichanegrita {
    font-size: 13.5px !important;
    font-weight: 700 !important;
    color: #000000 !important;
    font-family: var(--font-principal) !important;
    text-align: left !important;
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

/* Valor del campo — texto normal */
.fichatexto {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #333333 !important;
    font-family: var(--font-principal) !important;
    text-align: left !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: auto !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    width: 100% !important;
}

.fichatextoCentrado {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #333333 !important;
    font-family: var(--font-principal) !important;
    text-align: center !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: auto !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.fichatextoPF {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #333333 !important;
    font-family: var(--font-principal) !important;
    text-align: center !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: auto !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}


.fichatextoTitulo {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #ffffff !important;
    font-family: var(--font-principal) !important;
    text-align: left !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: auto !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    text-transform: uppercase !important;
    width: auto !important;
}

.fichatexto-sin-valor {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #999999 !important;
    font-family: var(--font-principal) !important;
    text-align: left !important;

    border: none !important;
    background: transparent !important;
    box-shadow: none !important;

    padding: 0 !important;
    height: auto !important;
    border-radius: 0 !important;

    margin-top: 0 !important;
    margin-bottom: 0 !important;
    width: 100% !important;

    font-style: italic;
    opacity: 0.7;
}

/* Ancho fijo para inputs de fecha — combinar con fichatexto:
   <input class="fichatexto ficha-fecha" ...> */
.ficha-fecha {
    width: 9ch !important;
    display: block !important;
    margin: 0 !important;
}

/* =================================================================
   CAMPO READONLY — clase para aplicar a mano
   Uso: <input class="form-control campo-readonly" readonly ...>

   Mismas dimensiones que un .form-control normal de Bootstrap 3
   (height 34px, padding 6px 12px) para que no rompa el layout.
   ================================================================= */
.campo-readonly,
.campo-readonly.form-control {
    background-color: #f4f7fb !important;
    border: 1px solid #d5dce8 !important;
    border-radius: 6px !important;
    color: #4a5568 !important;
    cursor: default !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 6px 12px !important;
    height: 34px !important;
    font-size: 15px !important;
    line-height: 1.428571429 !important;
    transition: background-color 0.15s ease, border-color 0.15s ease !important;
}

.campo-readonly:focus,
.campo-readonly.form-control:focus {
    border-color: #b8c7d9 !important;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.07) !important;
    outline: none !important;
}

/* Variante textarea — misma clase, sin altura fija */
textarea.campo-readonly {
    height: auto !important;
    min-height: 80px !important;
    resize: vertical !important;
}


/* precio-input y fichatextoPF — dentro de ficha-contenedor anulan
   el padding/height de form-control para equiparar el espaciado
   visual con los campos de fuente más pequeña. */
.ficha-contenedor .precio-input,
.ficha-contenedor-centrado .precio-input,
.ficha-contenedor .fichatextoPF,
.ficha-contenedor-centrado .fichatextoPF {
    padding: 0 !important;
    height: auto !important;
    line-height: 1 !important;
    margin: 0 !important;
    min-height: 0 !important;
}

/* Dentro de ficha-contenedor los inputs NO deben ser width:100% porque
   genera una dependencia circular con fit-content del contenedor:
   el hijo al 100% fuerza al padre a expandirse hasta el bloque disponible.
   field-sizing:content hace que el input se encoja al texto que contiene;
   width:auto actúa como mínimo. min-width evita que quede invisible vacío. */
.ficha-contenedor input,
.ficha-contenedor-centrado input {
    width: auto !important;
    field-sizing: content !important;
    min-width: 2ch !important;
}

/* =================================================================
   CLASES DE TAMAÑO DE INPUT — modo edición
   Equivalen al atributo size="" pero controladas desde CSS.

   caja1 → size 30 — campos de texto medianos (dirección, nombre...)

   Se puede usar como clase: <input class="caja1">
   O se aplica automáticamente a todos los inputs con data-val="1".
   ================================================================= */
/* Texto centrado */
.caja2,
.caja3,
.caja6,
.caja7,
input.cajaCodigo,
input[data-val="2"],
input[data-val="3"],
input[data-val="6"],
input[data-val="7"] {
    text-align: center !important;
}

.caja1,
.caja10,
input[data-val="1"],
input[data-val="10"] {
    width: 220px !important;
}

.caja12,
input[data-val="12"] {
    width: 140px !important;
    text-align: center !important;
}

.caja13,
.caja14,
input[data-val="13"],
input[data-val="14"] {
    width: 80px !important;
    text-align: center !important;
}

.caja15,
input[data-val="15"] {
    width: 100px !important;
}

.caja17,
.caja18,
input[data-val="17"],
input[data-val="18"] {
    width: 120px !important;
}

.caja19,
input[data-val="19"] {
    width: 70px !important;
    text-align: center !important;
}

.caja2,
input[data-val="2"] {
    width: 50px !important;
}

.caja3,
input[data-val="3"] {
    width: 90px !important;
}

.caja5,
input[data-val="5"] {
    width: 270px !important;
}

.caja6,
input[data-val="6"] {
    width: 130px !important;
}

.caja7,
input[data-val="7"] {
    width: 140px !important;
}

/* Variante código — sobreescribe el ancho de caja7 a ~6 caracteres */
input.cajaCodigo {
    width: 75px !important;
}

.caja8,
textarea[data-val="8"] {
    width: 100% !important;
    height: 90px !important;
    resize: vertical !important;
}

.caja9,
textarea[data-val="9"] {
    width: 100% !important;
    height: 112px !important;
    resize: vertical !important;
}

/* Todas las cajas nunca desbordan su contenedor */
.caja1,
.caja2,
.caja3,
.caja5,
.caja6,
.caja7,
.caja8,
.caja9,
.caja10,
.caja12,
.caja13,
.caja14,
.caja15,
input.cajaCodigo,
input[data-val="1"],
input[data-val="2"],
input[data-val="3"],
input[data-val="5"],
input[data-val="6"],
input[data-val="7"],
input[data-val="10"],
input[data-val="12"],
input[data-val="13"],
input[data-val="14"],
input[data-val="15"],
input[data-val="19"],
textarea[data-val="8"],
textarea[data-val="9"] {
    max-width: 100% !important;
}

/* =================================================================
   PANEL DE CAMPOS CON ANCHO FIJO — panel-campos
   (alias historico: .objetivos-comerciales-panel, de
   datosUsuarioObjetivosView.php / datosOficinaObjetivosView.php)

   Las columnas de Bootstrap (col-md-3 en %) son mucho más anchas que
   el tamaño fijo ya definido arriba para caja12/caja13 (140px/80px),
   dejando un hueco vacío enorme a la derecha de cada input. Aquí las
   columnas dejan de repartirse por porcentaje y se ajustan (ancho
   automático) al tamaño real de la etiqueta + el input.

   Úsalo en cualquier panel cuyos campos lleven data-val, en lugar de
   meter el input en un input-group de Bootstrap (que es display:table
   y empuja el símbolo — €, %, m² — al borde de la columna).

   Uso:
   <div class="panel-cuerpo panel-campos">
       <div class="row">
           <div class="col-md-3 form-group">
               <label class="fichanegrita">Importe (€)</label>
               <input type="text" data-val="12" class="form-control">
           </div>
       </div>
   </div>
   ================================================================= */
/* El cuerpo respira: .panel-cuerpo no trae padding propio y los campos
   quedarían pegados al borde del panel. */
.panel-campos {
    padding: 10px;
}

.panel-campos .row,
.objetivos-comerciales-panel .row {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 30px;
    margin-left: 0;
    margin-right: 0;
}

/* El clearfix de Bootstrap (.row:before/:after { content:" "; display:table; })
   se sigue calculando como si fuera el primer elemento flex, desplazando 30px
   (el ancho del column-gap) el arranque de la primera línea respecto al resto. */
.panel-campos .row::before,
.panel-campos .row::after,
.objetivos-comerciales-panel .row::before,
.objetivos-comerciales-panel .row::after {
    content: none !important;
    display: none !important;
}

.panel-campos .row > [class*="col-"],
.objetivos-comerciales-panel .row > [class*="col-"] {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto;
    padding-left: 0;
    padding-right: 0;
}

/* -----------------------------------------------------------------
   RESPONSIVE — mobile (≤ 767px)
   Las cajas anchas pasan a ocupar el 100% del contenedor.
   Las pequeñas (código, número, teléfono) mantienen su tamaño.
   ----------------------------------------------------------------- */
@media (max-width: 767px) {

    .caja1,
    .caja10,
    input[data-val="1"],
    input[data-val="10"] {
        width: 100% !important;
    }

    .caja5,
    input[data-val="5"] {
        width: 100% !important;
    }

    .caja8,
    textarea[data-val="8"] {
        width: 100% !important;
        height: 80px !important;
    }

    .caja9,
    textarea[data-val="9"] {
        width: 100% !important;
        height: 100px !important;
    }
}

/* -----------------------------------------------------------------
   RESPONSIVE — tablet (768px – 1024px)
   Las textareas grandes se limitan al ancho del contenedor.
   ----------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1024px) {

    .caja8,
    textarea[data-val="8"] {
        width: 100% !important;
    }

    .caja9,
    textarea[data-val="9"] {
        width: 100% !important;
    }
}


/* =================================================================
   FILA DE CONTENEDORES — ficha-fila
   Wrapper flex que iguala el alto de todos los ficha-contenedor hijos.

   Uso:
   <div class="ficha-fila">
       <div class="ficha-contenedor">...</div>
       <div class="ficha-contenedor">...</div>
   </div>
   ================================================================= */
.ficha-fila {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    margin-bottom: 0 !important;
}

/* Dentro de ficha-fila los contenedores se estiran al alto del más alto.
   min-height garantiza que la segunda fila (ej: fechas) tenga
   el mismo alto que la primera (precio/referencia) aunque sean más bajas. */
.ficha-fila>.ficha-contenedor,
.ficha-fila>.ficha-contenedor-centrado {
    justify-content: flex-start !important;
    min-height: var(--ficha-fila-min-height, 64px) !important;
}


/* =================================================================
   CONTENEDOR DE CAMPO — ficha-contenedor
   Envuelve fichanegrita (label) + fichatexto (valor).
   Se adapta al contenido: ocupa lo que necesite el campo más ancho.
   El fondo se controla con --ficha-contenedor-bg.

   Uso:
   <div class="ficha-contenedor">
       <label class="fichanegrita">Tipo</label>
       <div class="fichatexto campo-vista">Piso</div>
   </div>
   ================================================================= */
.ficha-contenedor {
    background-color: var(--ficha-contenedor-bg, #37afff11);
    border-radius: 8px !important;
    padding: 10px 20px !important;
    margin-bottom: 10px !important;
    margin-right: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: fit-content !important;
    min-width: 0 !important;
}

.ficha-contenedor-centrado {
    background-color: var(--ficha-contenedor-bg, #37afff11) !important;
    border-radius: 8px !important;
    padding: 10px 20px !important;
    margin-bottom: 10px !important;
    margin-right: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: fit-content !important;
    min-width: 0 !important;
    text-align: center !important;
}

/* =================================================================
   CONTENEDOR AJUSTADO AL CONTENIDO — ajusta-contenido
   Clase utilitaria para cualquier div/contenedor que deba encogerse
   al tamaño de su contenido interior (input, select, etc.)
   ================================================================= */
.ajusta-contenido {
    display: block !important;
    width: fit-content !important;
    min-width: 0 !important;
}


/* =================================================================
   CABECERA DE TABLA DE LISTADO
   Fila de cabecera azul sticky de la tabla de resultados.
   Poner la clase en el <tr>; los <a> y <span> internos heredan el estilo.

   Uso:
   <tr class="listadoTablaCab visible-lg visible-md">
       <td>...</td>
   </tr>
   ================================================================= */
.listadoTablaCab {
    background-color: var(--color-cabecera) !important;
    color: #ffffff !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9 !important;
}

.listadoTablaCab a,
.listadoTablaCab span {
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    font-family: var(--font-principal) !important;
}


/* =================================================================
   INPUT DE PRECIO
   Input grande y centrado para campos de precio/importe.
   Usar dentro de un input-group Bootstrap para añadir el símbolo de moneda.

   Uso:
   <div class="input-group">
       <span class="input-group-addon precio-simbolo"><?php echo $_SESSION['simbolo_moneda']; ?></span>
       <input type="text" class="form-control precio-input" ... />
   </div>
   ================================================================= */
.precio-input,
.referencia-input {
    font-size: 20px !important;
    font-weight: 600 !important;
    text-align: center !important;
    font-family: var(--font-principal) !important;
    color: #333 !important;
}

/* -----------------------------------------------------------------
   PRECIO BADGE — precio en display de ficha (no input).
   Fondo circular/pill con el color del módulo vía variable.
   El color del fondo se controla con --precio-badge-color.
   Por defecto usa el azul principal.

   Uso:
   <div class="precio-badge">350.000 €</div>
   Con color: <div class="precio-badge" style="--precio-badge-color:#20c997">350.000 €</div>
   ----------------------------------------------------------------- */
.precio-badge {
    display: inline-block !important;
    background-color: var(--precio-badge-color, #deeaf7) !important;
    color: var(--precio-badge-texto, #000000) !important;
    font-size: 28px !important;
    font-weight: 800 !important;
    font-family: var(--font-principal) !important;
    padding: 10px 24px !important;
    border-radius: 10px !important;
    letter-spacing: 0.5px !important;
    line-height: 1.2 !important;
    box-shadow: 0 4px 14px rgba(51, 122, 183, 0.15) !important;
}


.precio-simbolo {
    font-size: 16px !important;
    font-weight: 700 !important;
    font-family: var(--font-principal) !important;
    color: #555 !important;
    background-color: #eef0f8 !important;
    border-color: #ccc !important;
}


/* =================================================================
   CÍRCULOS / BADGES DE ESTADO Y ETIQUETAS

   circulo3  → badge de estado del inmueble (Disponible, Alquilado...).
               Color de fondo dinámico vía --circulo3-color (se pasa inline desde PHP).
   circulo1  → tarjeta pill del captador / propietario. Fondo suave vía --circulo1-color.

   Uso circulo3:
   <div class="circulo3" style="--circulo3-color:<?echo $bgColorEstado;?>">Disponible</div>

   Uso circulo1:
   <div class="circulo1">Gestor → Juan García</div>
   ================================================================= */

.circulo3 {
    display: inline-block !important;
    background-color: var(--circulo3-color, var(--color-cabecera)) !important;
    border: 2px solid var(--circulo3-color, var(--color-cabecera)) !important;
    color: var(--circulo3-texto, #ffffff) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    font-family: var(--font-principal) !important;
    padding: 5px 14px !important;
    border-radius: 50px !important;
    letter-spacing: 0.2px !important;
}

.circulo1 {
    display: inline-flex !important;
    align-items: center !important;
    background-color: var(--circulo1-color, #f8fafc) !important;
    color: #334155 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    font-family: var(--font-principal) !important;
    padding: 5px 12px !important;
    border-radius: 50px !important;
    min-height: 32px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: background-color 0.18s !important;
    box-sizing: border-box !important;
}

.circulo1:hover {
    background-color: var(--circulo1-hover, #e2e8f0) !important;
    transform: scale(1.04) !important;
}

/* Características del inmueble — misma forma pill que circulo1, cada una con su color original */
.tarjetasCarac1,
.tarjetasCarac2,
.tarjetasCarac3 {
    display: inline-flex !important;
    align-items: center !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    font-family: var(--font-principal) !important;
    padding: 5px 12px !important;
    border-radius: 50px !important;
    min-height: 32px !important;
    line-height: 1 !important;
    margin: 5px 6px 5px 0 !important;
    float: none !important;
    box-sizing: border-box !important;
    color: #ffffff !important;
}

.tarjetasCarac1,
.tarjetasCarac2,
.tarjetasCarac3 {
    background-color: #f8fafc !important;
    color: #334155 !important;
}


/* =================================================================
   TÍTULO DE SECCIÓN
   Texto de cabecera de un bloque o panel (no dentro de panel-cabecera).
   El color se controla con la variable --seccion-titulo-color.
   Por defecto usa el azul principal. Para blanco: style="--seccion-titulo-color:#fff"

   Uso:
   <div class="seccion-titulo">Solicitud Rápida</div>
   <div class="seccion-titulo" style="--seccion-titulo-color:#ffffff">Otras Utilidades</div>
   ================================================================= */
.seccion-titulo {
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.4px !important;
    text-transform: uppercase !important;
    font-family: var(--font-principal) !important;
    color: var(--seccion-titulo-color, var(--color-cabecera)) !important;
}


/* =================================================================
   TABLAS DE DATOS
   Clases globales para cualquier tabla de listado del programa.

   Uso básico:
   <table>
     <tr>
       <td class="tbl-th">Fecha</td>
       <td class="tbl-th">Tipo</td>
       <td class="tbl-th">Asunto</td>
     </tr>
     <tr>
       <td class="tbl-td tbl-td-fecha">12/05/2026</td>
       <td class="tbl-td"><span class="badge-tipo">Llamada</span></td>
       <td class="tbl-td">Consulta precio</td>
     </tr>
   </table>
   ================================================================= */

/* -----------------------------------------------------------------
   CELDA DE CABECERA — columnas de cualquier tabla
   ----------------------------------------------------------------- */
.tbl-th {
    background-color: #eef0f8 !important;
    color: #555 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.4px !important;
    text-transform: uppercase !important;
    padding: 7px 8px !important;
    border-bottom: 1px solid #d0d0e0 !important;
    font-family: var(--font-principal) !important;
    vertical-align: middle !important;
}

/* -----------------------------------------------------------------
   CELDA DE DATO — celda estándar de cualquier tabla
   Usar para: asunto, nombre cliente/contacto, referencia, etc.
   ----------------------------------------------------------------- */
.tbl-td {
    font-size: 14px !important;
    color: #333 !important;
    padding: 7px 8px !important;
    border-bottom: 1px solid #ebebf2 !important;
    vertical-align: middle !important;
    font-family: var(--font-principal) !important;
    cursor: pointer !important;
}

.tbl-td:hover {
    background-color: #f5f7ff !important;
}

/* -----------------------------------------------------------------
   HORA bajo la fecha — texto pequeño en gris
   Uso: <span class="tbl-hora">14:30</span>
   ----------------------------------------------------------------- */
.tbl-hora {
    font-size: 11px !important;
    color: #888 !important;
}

/* -----------------------------------------------------------------
   BADGE TIPO — pequeño pill redondeado con color de fondo
   El color se controla con la variable --badge-color en inline style.
   Por defecto usa el color principal de la aplicación.

   Uso: <span class="badge-tipo">Llamada</span>
   Con color: <span class="badge-tipo" style="--badge-color:#20c997">Visita</span>
   ----------------------------------------------------------------- */
.badge-tipo {
    display: inline-block !important;
    background-color: var(--badge-color, var(--color-cabecera)) !important;
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    padding: 3px 9px !important;
    border-radius: 20px !important;
    white-space: nowrap !important;
    font-family: var(--font-principal) !important;
    letter-spacing: 0.2px !important;
}


/* =================================================================
   CÓDIGOS Y REFERENCIAS ESPECÍFICAS
   Clases para mostrar identificadores clave del sistema.

   Uso:
   <span class="refInmueble">REF-000123</span>
   ================================================================= */


.codUniversalBadge {
    text-align: center;
    font-size: 13px !important;
    color: var(--color-numero-badge) !important;
    font-family: var(--font-principal) !important;
    font-weight: 900;
    justify-self: anchor-center;
    padding: 5px;
    background: var(--color-fondo-badge) !important;
    border-radius: 10px;
    border: none;
    min-width: 40px;
    white-space: nowrap;
}


/* =================================================================
   MENÚ DESPLEGABLE DE OPCIONES — menu-opciones
   Uso base:       <ul class="dropdown-menu menu-opciones">
   Para cliente: añadir también menu-opciones-cli
   Para contacto: añadir también menu-opciones-con
   Para prospección: añadir también menu-opciones-pros
   ================================================================= */
.menu-opciones {
    border: 1px solid rgba(51, 122, 183, 0.15) !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 36px rgba(51, 122, 183, 0.13), 0 2px 10px rgba(0,0,0,0.08) !important;
    padding: 8px 0 !important;
    min-width: 205px !important;
    background: #ffffff !important;
    overflow: hidden !important;
    animation: menuOpcFadeIn 0.14s ease;
}

@keyframes menuOpcFadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to   { opacity: 1; transform: translateY(0); }
}

.menu-opciones > li {
    height: auto !important;
}

.menu-opciones > li > a {
    font-family: var(--font-principal) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.07em !important;
    color: #334155 !important;
    padding: 9px 18px 9px 16px !important;
    display: block !important;
    text-decoration: none !important;
    border-left: 3px solid transparent !important;
    transition: background-color 0.13s, border-color 0.13s, color 0.13s !important;
    line-height: 1.3 !important;
    background-color: transparent !important;
}

.menu-opciones > li > a:hover,
.menu-opciones > li > a:focus {
    background-color: rgba(51, 122, 183, 0.07) !important;
    border-left-color: var(--color-cabecera) !important;
    color: var(--color-cabecera) !important;
    outline: none !important;
}

.menu-opciones > li.divider {
    height: 0 !important;
    margin: 6px 14px !important;
    border-top: 1px solid #e2e8f0 !important;
    background: none !important;
}

/* --- Variante cliente --- */
.menu-opciones.menu-opciones-cli > li > a:hover,
.menu-opciones.menu-opciones-cli > li > a:focus {
    background-color: rgba(234, 141, 43, 0.09) !important;
    border-left-color: rgba(234, 141, 43, 1) !important;
    color: rgba(200, 110, 10, 1) !important;
}

/* --- Variante contacto --- */
.menu-opciones.menu-opciones-con > li > a:hover,
.menu-opciones.menu-opciones-con > li > a:focus {
    background-color: rgba(160, 132, 100, 0.09) !important;
    border-left-color: #A08464 !important;
    color: #7a6040 !important;
}

/* --- Variante prospección --- */
.menu-opciones.menu-opciones-pros > li > a:hover,
.menu-opciones.menu-opciones-pros > li > a:focus {
    background-color: rgba(98, 161, 255, 0.09) !important;
    border-left-color: #62A1FF !important;
    color: #2f5fa0 !important;
}

/* --- Variante demanda --- */
.menu-opciones.menu-opciones-dem > li > a:hover,
.menu-opciones.menu-opciones-dem > li > a:focus {
    background-color: rgba(0, 152, 70, 0.10) !important;
    border-left-color: #009846 !important;
    color: #007a38 !important;
}

/* --- Variante inmueble --- */
.menu-opciones.menu-opciones-inm > li > a:hover,
.menu-opciones.menu-opciones-inm > li > a:focus {
    background-color: rgba(160, 132, 100, 0.09) !important;
    border-left-color: #6cb0ec !important;
    color: #2b6aa0 !important;
}

/* --- Variante operaciones --- */
.menu-opciones.menu-opciones-oper > li > a:hover,
.menu-opciones.menu-opciones-oper > li > a:focus {
    background-color: rgba(65, 112, 84, 0.09) !important;
    border-left-color: #417054 !important;
    color: #2f4d3d !important;
}


/* =================================================================
   SWEETALERT — reskin visual global
   Sobreescribe únicamente el aspecto de las alertas SweetAlert (v1,
   sweetalert-master) que ya se usan en toda la app: mismo JS/lógica
   (swal({...})), solo se retocan las clases estándar de la librería
   (.sweet-alert, .sa-icon, botones .confirm/.cancel...) para que
   coincidan con el resto del sistema de diseño (--font-principal,
   --color-cabecera, --radio-panel).
   ================================================================= */
.sweet-overlay {
    background-color: rgba(15, 23, 42, 0.55) !important;
}

.sweet-alert {
    border-radius: 20px !important;
    padding: 34px 30px 30px !important;
    box-shadow: 0 24px 60px rgba(20, 35, 60, .28) !important;
    font-family: var(--font-principal) !important;
}

.sweet-alert h2 {
    font-family: var(--font-principal) !important;
    font-weight: 700 !important;
    font-size: 21px !important;
    color: #1e293b !important;
    margin-top: 10px !important;
}

.sweet-alert p {
    font-family: var(--font-principal) !important;
    font-size: 14.5px !important;
    color: #64748b !important;
    line-height: 1.5 !important;
}

.sweet-alert button {
    border-radius: var(--radio-panel, 10px) !important;
    font-weight: 600 !important;
    font-size: 13.5px !important;
    padding: 10px 24px !important;
    font-family: var(--font-principal) !important;
    box-shadow: none !important;
    transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease !important;
}

.sweet-alert button:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(20, 35, 60, .18) !important;
}

.sweet-alert button.confirm {
    background-color: var(--color-cabecera) !important;
}

.sweet-alert button.confirm:hover {
    filter: brightness(0.9);
}

.sweet-alert button.cancel {
    background-color: #eef1f7 !important;
    color: #1e293b !important;
}

.sweet-alert button.cancel:hover {
    background-color: #e2e7f0 !important;
}

.sweet-alert .sa-icon.sa-warning {
    border-color: #f59e0b !important;
}

.sweet-alert .sa-icon.sa-warning .sa-body,
.sweet-alert .sa-icon.sa-warning .sa-dot {
    background-color: #f59e0b !important;
}

.sweet-alert .sa-icon.sa-error {
    border-color: #ef4444 !important;
}

.sweet-alert .sa-icon.sa-error .sa-line {
    background-color: #ef4444 !important;
}

.sweet-alert .sa-icon.sa-success {
    border-color: #22c55e !important;
}

.sweet-alert .sa-icon.sa-success .sa-line {
    background-color: #22c55e !important;
}

.sweet-alert .sa-icon.sa-success .sa-placeholder {
    border-color: rgba(34, 197, 94, .3) !important;
}