* {
    box-sizing: border-box;
    font-family: Arial, sans-serif;
}
body {
    background-color: #f0f2f5;
    padding: 20px;
}
header {
    background-color: #003580;
    color: white;
    padding: 15px;
    text-align: center;
}
.search-box {
    background-color: white;
    padding: 15px;
    margin-top: 20px;
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    align-items: center;
}
.search-box input,
.search-box select,
.search-box button {
    padding: 10px;
    border-radius: 4px;
    border: 1px solid #ccc;
    min-width: 150px;
    font-size: 14px;
}
.search-box button {
    background-color: #0071c2;
    color: white;
    border: none;
    cursor: pointer;
    min-width: 100px;
}

/* Estilos para el croquis/plano */
body {
    font-family: Arial, sans-serif;
    margin: 20px;
    background-color: #fafafa;
}

/* Contenedor principal con flexbox para colocar dos planos lado a lado */
.main-container {
    display: flex;
    justify-content: center;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
    flex-wrap: wrap;
}

/* Contenedores individuales con grid */
.container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(10, auto);
    width: 500px;
    gap: 5px;
    background: white;
    padding: 10px;
    border: 2px solid #333;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
}

.area {
    border: 1px solid #000;
    padding: 8px;
    text-align: center;
    font-weight: bold;
    font-size: 13px;
    background-color: #c8d3e2;
    user-select: none;
    cursor: default;
}

.area.cuarto {
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s;
}
.area.cuarto:hover {
    background-color: #a0b4d3;
}
.area.cuarto.seleccionado {
    background-color: #0071c2;
    color: white;
    border-color: #004a87;
}

.table-bluelight-hover:hover{
    background-color: #a0b4d3;
}

.titulo {
    grid-column: span 3;
    background-color: #f4a460;
    font-size: 18px;
    user-select: none;
}

/*REQUIRED INPUT*/
.required:after {
    content:" *";
    color: red;
}

/* --- Planta Baja --- */
/* Colores */
.planta-baja .cocina { background-color: #fff3a1; }
.planta-baja .piscina {
    background-color: #00bfff;
    writing-mode: vertical-rl;
    text-orientation: upright;
    user-select: none;
}
.planta-baja .bano, .planta-baja .bar {
    background-color: #c9e5b4;
}
.planta-baja .comedor, .planta-baja .escaleras {
    background-color: #fff;
}

/* Ubicaciones Planta Baja */
.planta-baja .titulo { grid-row: 1; }
.planta-baja .cocina { grid-column: 1 / 2; grid-row: 2; }
.planta-baja .cuarto108 { grid-column: 1 / 2; grid-row: 3; }
.planta-baja .cuarto107 { grid-column: 1 / 2; grid-row: 4; }
.planta-baja .bano { grid-column: 1 / 2; grid-row: 5; }
.planta-baja .bar { grid-column: 1 / 2; grid-row: 6; }
.planta-baja .cuarto106 { grid-column: 1 / 2; grid-row: 7; }

.planta-baja .piscina { grid-column: 2 / 3; grid-row: 3 / 5; }

.planta-baja .cuarto101 { grid-column: 3 / 4; grid-row: 2; }
.planta-baja .cuarto102 { grid-column: 3 / 4; grid-row: 3; }
.planta-baja .cuarto103 { grid-column: 3 / 4; grid-row: 4; }
.planta-baja .cuarto104 { grid-column: 3 / 4; grid-row: 5; }
.planta-baja .cuarto105 { grid-column: 3 / 4; grid-row: 6; }

.planta-baja .escaleras { grid-column: 2 / 3; grid-row: 6; }
.planta-baja .comedor { grid-column: 2 / 3; grid-row: 7; }


/* --- Planta Alta --- */
/* Colores */
.planta-alta .cocina { background-color: #fff3a1; }
.planta-alta .piscina {
    background-color: #00bfff;
    writing-mode: vertical-rl;
    text-orientation: upright;
    user-select: none;
}

/* Ubicaciones Planta Alta */
.planta-alta .titulo { grid-row: 1; }
.planta-alta .cocina { grid-column: 1 / 2; grid-row: 2; }

.planta-alta .cuarto108-107-container {
    grid-column: 1 / 2;
    grid-row: 3 / 5;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    padding: 0;
    border: none;
}

.planta-alta .cuarto108-107-container .cuarto {
    margin: 0;
    border: 1px solid #000;
    /*background-color: #c8d3e2;*/
    font-size: 12px;
    padding: 8px 4px;
    font-weight: bold;
    user-select: none;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s;
}
.planta-alta .cuarto108-107-container .cuarto:hover {
    background-color: #a0b4d3;
}
.planta-alta .cuarto108-107-container .cuarto.seleccionado {
    /*background-color: #0071c2;*/
    color: white;
    border-color: #004a87;
}

.planta-alta .cuarto106 { grid-column: 1 / 2; grid-row: 6; }

.planta-alta .piscina { grid-column: 2 / 3; grid-row: 3 / 5; }
.planta-alta .cuarto206 { grid-column: 2 / 3; grid-row: 5; }

.planta-alta .cuarto201 { grid-column: 3 / 4; grid-row: 2; }
.planta-alta .cuarto202 { grid-column: 3 / 4; grid-row: 3; }
.planta-alta .cuarto203 { grid-column: 3 / 4; grid-row: 4; }
.planta-alta .cuarto204 { grid-column: 3 / 4; grid-row: 5; }
.planta-alta .cuarto205 { grid-column: 3 / 4; grid-row: 6; }
.planta-alta .carousel { grid-column: 3 / 4; grid-row: 6; }

/* Total reserva */
.total {
    white-space: pre-wrap; /* or pre, or pre-line */
}

.pointer {
    cursor: pointer;
}

.imgshadow:hover {
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

/* Botón Reservar */
#btnReservar {
    display: none;
    margin: 20px auto;
    padding: 12px 30px;
    font-size: 16px;
    background-color: #0071c2;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s;
    user-select: none;
}
#btnReservar:hover {
    background-color: #005a8b;
}

.disabled-room {
    pointer-events: none;
    opacity: 0.6;
    background-color: red;
}